NULLIF与ISNULL的交叉使用
事件源于字词字段拼接,由于不清楚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赋值的同时付给了结果内存。
NULLIF与ISNULL的交叉使用的更多相关文章
- MySql 里的IFNULL、NULLIF和ISNULL用法
MySql 里的IFNULL.NULLIF和ISNULL用法 mysql中isnull,ifnull,nullif的用法如下: isnull(expr) 的用法: 如expr 为null,那么isnu ...
- MySQL中 IFNULL、NULLIF和ISNULL函数的用法
mysql 中 ifnull().nullif().isnull()函数的用法讲解: 一.IFNULL(expr1,expr2)用法: 假如expr1不为NULL,则 IFNULL() 的返回值为ex ...
- MySql 里的IFNULL、NULLIF和ISNULL用法区别
mysql中isnull,ifnull,nullif的用法如下: isnull(expr) 的用法:如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0. mysql> ...
- sql server int 列 NULLIF,isnull 判断是0还是1 ,如果是0就变成1
SELECT ISNULL(NULLIF(col1,0),1) ISNULL: 第一个表达式 是 null 返回 第二个表达式,否则 返回 第一个 , ISNULL(表达式1,表达式2) if(表达 ...
- MySql 里的IFNULL、NULLIF、ISNULL和IF用法
isnull(expr) 的用法: 如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0. 实例: select ISNULL(NULL) 输出结果: ) 输出结果: IFN ...
- SQL Server里的 ISNULL 与 NULLIF
SQL Server 中有两个參数,语法: ISNULL(check_expression, replacement_value) check_expression 与 replacement ...
- SQL Server里的 ISNULL 与 NULLIF(转)
SQL Server 中有两个参数,语法: ISNULL(check_expression, replacement_value) check_expression 与 replacement ...
- 面试篇——mysql
背景:在面试过程中发现很多公司对sql查询有要求,虽然不高,但是简单常见的sql查询必须熟练的掌握,否则一面都无法通过,痛定思痛,必须要深入了解下!!! 注释符号 面试题1 查询没有成绩的学生信息 参 ...
- mysql当查询某字段结果为空并赋值
1 代码 1.1 当当前字段为空,查询结果返回“none”,并且统计出现频率 select case when 字段 is null then 'none' else 字段 end as 字段, co ...
随机推荐
- vxworks固件分析
前言 vxworks 的固件分析流程 1.用binwalk查看固件基本信息并解压固件 2.获取固件相关信息, cpu架构,大小端 3.确定固件的加载地址 4.用IDA加载固件,并修复符号表 5. 分析 ...
- ciscn2018-pwn-wp
前言 2018全国大学生网络安全竞赛 ,做了2 道题 task_supermarket change_desc 里面调用 realloc 会触发 uaf 利用 uaf 修改 obj->desc_ ...
- CVE-2015-3864漏洞利用分析(exploit_from_google)
title: CVE-2015-3864漏洞利用分析(exploit_from_google) author: hac425 tags: CVE-2015-3864 文件格式漏洞 categories ...
- linux centos7最小化安装NAT模式网络设置
1.网络连接设置为NAT模式2.开启CentOS7,以root登陆3.vi /etc/sysconfig/network-scripts/ifcfg-ensXXXX4.设置BOOTPROTO=dhcp ...
- 2.MyBatis 动态SQL
动态 SQL MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦.拼接的时候要确保不能忘了必要的空格 ...
- 为什么有时候NSData转换成NSString的时候返回nil
为什么有时候NSData转换成NSString的时候返回nil 有时候,NSData明明有值,可是,当转换成NSString的时候,却没有值,现在来进行测试:) -现在提供测试用素材- 源码如下: / ...
- Spring Security自定义GrantedAuthority前缀
如果我们正使用Spring Security提供默认的基于方法的权限认证注解如下: @PreAuthorize("hasAnyRole('ADMIN', 'USER')") pub ...
- 铁乐学python_day02-作业
1.判断下列逻辑语句的True,False. 1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 解题思路 ...
- ms17-010漏洞利用教程
ms17-010 漏洞利用并拿下服务器教程 攻击环境: 攻击机win2003 ip:192.168.150.129 Window2003 Python环境及工具 攻击机kali: ip:192.168 ...
- javascript 大中小括号的区别
小括号 JavaScript中小括号有五种语义 语义1,函数声明时参数表 function func(arg1,arg2){ // ... } 语义2,和一些语句联合使用以达到某些限定作用 // 和f ...