简介 nullif和ifnull是数据库中常用的两个函数。不同的数据库可能会略微有差异。...详解 NULLIF NULLIF(expr1,expr2) NULLIF接受两个参数,如果两个参数相等则返回NULL,不相等则返回第一个参数。...NULLIF('culturesun.site',NULL); --返回 NULL ,因为第一个参数是 NULL SELECT NULLIF(NULL,'culturesun.site'); 注意第三句...IFNULL IFNULL(expr1,expr2) IFNULL接受两个参数,如果第一个参数为NULL,则返回第二个参数,否则返回第一个参数。...IFNULL(NULL,'culturesun.site'); --返回 NULL(返回的是第二个参数) SELECT IFNULL(NULL,NULL); 注意SQL server中没有IFNULL
正文部分 SAP HANA SQL中有IFNULL,还有NULLIF 两者的用法和区别简单说一下 IFNULL是返回第一个不为NULL的数据 用法如下: NULLIF是比较前后两个参数是否相等 如果相等
IFNULL(expr1,expr2) 如果expr1不为NULL,则返回expr1; 否则返回expr2。 IFNULL()的返回值是数字或是字符串....例如查询所有商品,把价格为null的改为0; select ifnull(goods_price,0) from goods ; ?...则返回所有商品价格,如果有null的则返回0; NULLIF(expr1,expr2) 如果expr1和expr2相等,则返回null,否则返回expr1的值 例如 查询商品的促销价格和市场价格是否相等...,不相等返回促销价格,相等则返回null select nullif(goods_price,goods_marketprice) from goods; 当然,一般情况下相等也不返回null,这只是个实例
SUBSTR(str,pos,len) substr用来截取字符串; str 被截取的字符串 pos 开始位置 len 长度 举个例子: substr('abc',1,2)='ab' IFNULL(expr1...举个例子: ifnull(a,'b') = x; if a==0; 结果x='b' if a0; 结果x=a 的值。
mysql高级函数FIND_IN_SET,ENUM和SET,LOCATE,ELT,FIELD,INTERVAL,COUNT,CAST,NULLIF,ISNULL,IFNULL,IF,CONVERT,COALESCE...222,111,333,444'); #查询结果:2 SELECT FIND_IN_SET('111','222,333,444'); #查询结果:0 ## 加法 SELECT 1|4|16|2 /** ENUM和SET...> 200 THEN 1 END) FROM k1; # 2 # CAST(x AS type)转换数据类型 /** 类型可以为: CHAR[(N)] 字符型 DATE 日期型 DATETIME 日期和时间型...(1+1); # 0 (否) SELECT ISNULL(1=2); # 0 (否) #IFNULL(v1,v2)如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。...SELECT IFNULL(NULL,'Hello World'); #Hello World SELECT IFNULL('hello','Hello World'); # hello # IF(
student_can_be from class_1 where age>18 把salary表中的女改成男,男改成女: update salary set sex = if( sex = '男','女','男'); IFNULL...表达式 IFNULL( a, b) 判断第一个参数a是否为NULL: 如果a不为空,直接返回a; 如果a为空,返回第二个参数 b SELECT IFNULL(NULL,"11"); -> 11...SELECT IFNULL("00","11"); -> 00 NULLIF 表达式 NULLIF(a,b):如果两个参数相等则返回NULL,否则返回第一个参数的值a mysql> select nullif...(1,1),nullif(123,234); +-------------+-----------------+ | nullif(1,1) | nullif(123,234) | +---------
——冯梦龙 NULLIF函数是MySQL中的一个条件函数,用来返回两个表达式的比较结果。具体来说,如果两个表达式相等,NULLIF函数返回NULL;如果不相等,它就返回第一个表达式的值。...其基本语法如下: NULLIF(expr1, expr2) 其中,expr1和expr2可以是任何类型的表达式,但它们应该是相同的数据类型或者可以隐式转换的类型。...使用NULLIF可以有效避免这种错误。...例如,我们要计算两个列A和B的比值,可以这样写: SELECT A, B, A / NULLIF(B, 0) AS result FROM your_table; 这里,如果B为0,则NULLIF(B,...,使得整个数据集更加准确和有用。
nullif::= NULLIF "(" expr1 "," expr2 ")"NULLIF函数用于对两个参数的值进行比较,相等时返回NULL,不相等时返回expr1的值。...expr1和expr2均为YashanDB认可的通用表达式,且存在如下约束:expr1不能为NULL,否则函数返回错误。expr1和expr2均不能为LOB类型及XMLTYPE类型,否则函数返回错误。...本函数根据以下规则确定返回结果的数据类型:expr1和expr2均为数值型时,函数将会确定其中具有最高精度的数据类型,并将计算结果转为该类型返回。...expr1和expr2中有一个是DATE类型,另一个是TIMESTAMP类型时,函数返回TIMESTAMP类型。...示例--expr1和expr2的值不相等时SELECT NULLIF('123','456') res FROM DUAL;RES----- 123--expr1和expr2的值相等时SELECT NULLIF
SQL函数 NULLIF 如果两个表达式具有相同的值,则返回 NULL 的函数。...NULLIF 返回与 expression1 相同的数据类型。 描述 如果 expression1 的值等于 expression2 的值,则 NULLIF 函数返回 NULL。...SQL Function Comparison Test Return Value IFNULL(ex1,ex2) [two-argument form] ex1 = NULL True returns...ex2 False returns NULL IFNULL(ex1,ex2,ex3) [three-argument form] ex1 = NULL True returns ex2 False returns...ex3 {fn IFNULL(ex1,ex2)} ex1 = NULL True returns ex2 False returns ex1 ISNULL(ex1,ex2) ex1 = NULL True
IFNULL IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。...IFNULL() 函数语法格式为: IFNULL(expression, alt_value) 如果第一个参数的表达式 expression 为 NULL,则返回第二个参数的备用值。...用例 select * from `user` SELECT name, total_amount, ifnull(freeze_amount, 0) AS freeze_amount FROM...`user` WHERE ifnull(freeze_amount, 0) >= 0
ifnull::= IFNULL "(" expr1 "," expr2 ")"IFNULL函数有2个expr参数,当expr1不为NULL时返回expr1,否则返回expr2。...当expr1和expr2的数据类型相同时,函数返回此数据类型的值。...当expr1,expr2其中之一为XMLTYPE时,expr1和expr2的数据类型必须相同,否则函数返回错误,函数返回值类型为XMLTYPE类型。...若expr1和expr2的数据类型不相同,函数将先进行隐式类型转换后再返回结果,基本规则如下:expr1与expr2分属如下不同大类组时,函数返回VARCHAR类型:数值型日期时间型字符型ROWIDexpr1...示例SELECT IFNULL(1, 2) res FROM DUAL; RES ------------ 1SELECT IFNULL(NULL, 2) res
NULLIF函数 NULLIF 函数用于比较两个表达式,如果它们相等,则返回 NULL;否则返回第一个表达式的值。...语法: NULLIF(expression1, expression2) expression1 和 expression2:要比较的两个表达式。...IFNULL函数 IFNULL 函数用于判断表达式是否为 NULL,如果为 NULL,则返回指定的默认值;如果不为 NULL,则返回表达式的值。...示例代码: SELECT IFNULL(column_name, default_value) AS new_column_name FROM table_name; 在上面的示例中,IFNULL 函数用于处理查询结果中的...GREATEST和LEAST函数 GREATEST 和 LEAST 函数用于比较多个表达式的值,并返回这些值中的最大值或最小值。
整数 假如expr2 和expr3 都是字符串,且其中任何一个字符串区分大小写,则返回结果是区分大小写。...mysql> SELECT IFNULL(1,0); -> 1 mysql> SELECT IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL...NULLIF(expr1,expr2) 如果expr1 = expr2 成立,那么返回值为NULL,否则返回值为 expr1。...这和CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END相同。...mysql> SELECT NULLIF(1,1); -> NULL mysql> SELECT NULLIF(1,2); -> 1 注意,如果参数不相等,则 MySQL
`IF`(expr1,expr2,expr3) ISNULL(expr) 定义: 判断exper是否为空,是则返回1,否则返回0 ISNULL(expr) IFNULL(exper1,exper2)...定义: 判断exper1是否为空,是则用exper2代替 IFNULL(exper1,exper2) NULLIF(exper1,exper2) 定义: 如果expr1= expr2 成立,那么返回值为...NULLIF(exper1,exper2) 字符串函数 SUBSTR SUBSTR (str, pos) 截取从pos位置开始到最后的所有str字符串,mysql中的start是从1开始的 SUBSTR...SUBSTRING 和SUBSTR相同 SUBSTRING_INDEX 定义: 按关键字截取字符串 substring_index(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置
bin() BINARY CASE cast() COALESCE() CONNECTION_ID() conv() charset() CURRENT_USER() DATABASE() if() ifnull...() ISNULL() LAST_INSERT_ID() NULLIF() SESSION_USER() SYSTEM_USER() USER() VERSION() ---- sql bin() SELECT...ifnull() SELECT ifnull(null,"hello world!"); 解析:第一个参数为Null,返回第二个参数,第一个参数不为null。...NULL); 解析:为null,返回1,不为null,返回0 LAST_INSERT_ID() SELECT LAST_INSERT_ID(); 解析:最近生成的 AUTO_INCREMENT 值 NULLIF...() SELECT NULLIF(25, 25); 解析:如果相等。
描述 支持IFNULL作为SQL通用函数和ODBC标量函数。 请注意,虽然这两个执行非常相似的操作,但它们在功能上是不同的。 SQL通用函数支持三个参数。 ODBC标量函数支持两个参数。...IFNULL(expression-1,expression-2,expression-3):如果expression-2和expression-3具有不同的数据类型,则返回数据类型优先级更高(包容性更强...如果expression-2和expression-3的长度、精度或比例不同,则IFNULL返回两个表达式的更大长度、精度或比例。...returns ex2 False returns ex1 NVL(ex1,ex2) ex1 = NULL True returns ex2 False returns ex1 NULLIF(ex1,...,{fn IFNULL(NULL,99)} AS NullODBC 99 99 在下面的示例中,通用函数和ODBC标量函数示例返回不同的值。
引言 在数据库操作中,转换函数和条件函数是实现数据类型转换、逻辑判断和数据筛选的关键工具。达梦数据库提供了丰富的函数库,以支持高效的数据处理。...本文将重点介绍达梦数据库中的转换函数和条件函数,并通过具体案例SQL语句展示其应用方法,帮助开发者和数据分析师更好地掌握这些函数的精髓。 一、转换函数 1....IFNULL(): 空值处理 案例:当用户地址为空时,使用默认地址填充。...SELECT user_id, IFNULL(address, '未填写') AS address_info FROM users; 3....SELECT numerator, denominator, NULLIF(denominator, 0), numerator / NULLIF(denominator, 0) AS result FROM
如: SELECT NULLIF(1,1); 其结果为null;SELECT NULLIF(1,2); 其结果则为1。...3.3.2 示例 练习1:获取用户的年龄,如果为60,则显示为null;要求使用nullif函数查询: select uname, nullif(age, 60) from t_user; 4....回望 if函数的语法 if(exp1, exp2, exp3) ifnull函数的语法 ifnull(exp1, exp2) nullif函数的语法 nullif(exp1, exp2) 二 字符串函数...)、cruuent_date() 获取当前日期,如 2019-10-18 current_time(), current_time 获取当前时:分:秒,如:15:36:11 now() 获取当前的日期和时间...,如:2019-10-18 15:37:17 sysdate() 获取当前的日期和时间,如:2019-10-18 15:37:17 练习1:获取当前的日期 select curdate(); select