事件源于字词字段拼接,由于不清楚NULLIF的本质导致惨剧发生。

 1 Select IsNull(NullIf('', dbo.f_CTRL_GetAlloy('', 'T5')), '6063-T5')
2 Select IsNull(NullIf(dbo.f_CTRL_GetAlloy('', 'T5'), ''), '6063-T5') 函数f_CTRL_GetAlloy功能解释:当6063-T5传入时,返回空;其他值传入时,返回两字段相加字段。

以上SQL都有NULLIF/ISNULL依次处理,函数f_CTRL_GetAlloy传回值都为空值,所以NULLIF此时返回的都为NULL。

 Select NullIf('', dbo.f_CTRL_GetAlloy('', 'T5')) As NULLIF1
Select NullIf(dbo.f_CTRL_GetAlloy('', 'T5'), '') As NULLIF2 得到两个NULL值

此时剩下的SQL

 Select IsNull(Null, '6063-T5')

照常理应该得到值

 6063-T5

但是实际得到两个值,SQL1/SQL2

 1 Select NullIf('', dbo.f_CTRL_GetAlloy('', 'T5')) As NULLIF1 = 6
2 Select NullIf(dbo.f_CTRL_GetAlloy('', 'T5'), '') As NULLIF2 = '6063-T5'

初步认为NUIFF赋值的同时付给了结果内存。

最新文章

  1. Beginning Scala study note(8) Scala Type System
  2. JavaScript数据类型
  3. 【python】操作excel——xlrd xlwt xlutils
  4. r8 - ASC 41(俄罗斯多校)
  5. 日常UVA题目英语积累
  6. 为什么模板函数的声明和实现都放在.h文件中
  7. HttpUtility.HtmlEncode 方法
  8. @Factory和@DataProvider的区别
  9. Winform模拟post请求和get请求登录网站
  10. HDU 5832 A water problem
  11. Day 3 @ RSA Conference Asia Pacific & Japan 2016 (morning)
  12. 在Win7的IIS上搭建FTP服务及用户授权——转载!!
  13. VM 映像 PowerShell 教学系列博客文章
  14. (89C51)定时器计时1s
  15. Leetcode 高精度 Plus One
  16. 使用pscp命令在Windows与linux之间拷贝文件
  17. PHP通过get方法获得form表单数据方法总结
  18. Hibernate学习(九)———— 二级缓存和事务级别详讲
  19. Mysql5.7实现主从复制、基于GTID的主从复制、并行复制
  20. MySQL--线程池(Thread Pool)

热门文章

  1. EJB JBOSS的安装
  2. Android 后台线程,timertask实现定期更新时间
  3. 报表导出excel方式介绍
  4. redis 管道技术 pipeline 简介
  5. request对象方法
  6. 类和类的关系——java
  7. 使用 NGINX 进行微程序缓存的好处
  8. leetCode题解之旋转数字
  9. ORACLE数据库AWR工具学习
  10. Jenkins操作,实现增删改查