简介 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,则返回第二个参数,否则返回第一个参数。...,即使是列值与字符串拼接,也依旧是判断列值是否为空。
正文部分 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,这只是个实例
mysql高级函数FIND_IN_SET,ENUM和SET,LOCATE,ELT,FIELD,INTERVAL,COUNT,CAST,NULLIF,ISNULL,IFNULL,IF,CONVERT,COALESCE...()函数 MySQL中的field()函数,可以用来对SQL中查询结果集进行指定顺序排序 函数使用格式如下: order by field(str,str1,str2,str3,str4……),str与str1...3,20,30,40,50,60); # 0 SELECT INTERVAL(NULL,20,30,40,50,60); # -1 SELECT INTERVAL('c','b','d'); # 2 #elt函数与interval...(expr1, expr2)比较两个字符串,如果字符串 expr1 与 expr2 相等 返回 NULL,否则返回 expr1 SELECT NULLIF(25, 25) ### null SELECT...SELECT IFNULL(NULL,'Hello World'); #Hello World SELECT IFNULL('hello','Hello World'); # hello # IF(
NULLIF 返回与 expression1 相同的数据类型。 描述 如果 expression1 的值等于 expression2 的值,则 NULLIF 函数返回 NULL。...如果逻辑比较测试为 True(A 与 B 相同),则每个函数返回一个值,如果逻辑比较测试为 False(A 与 B 不同),则返回另一个值。这些函数允许执行 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
——冯梦龙 NULLIF函数是MySQL中的一个条件函数,用来返回两个表达式的比较结果。具体来说,如果两个表达式相等,NULLIF函数返回NULL;如果不相等,它就返回第一个表达式的值。...使用NULLIF可以有效避免这种错误。...例如,我们要计算两个列A和B的比值,可以这样写: SELECT A, B, A / NULLIF(B, 0) AS result FROM your_table; 这里,如果B为0,则NULLIF(B,...NULLIF可以在这里发挥作用,帮助简化查询逻辑。...比如,与COALESCE函数结合,可以实现多重默认值的逻辑: SELECT COALESCE(NULLIF(email, ''), 'no-email@example.com') AS email FROM
nullif::= NULLIF "(" expr1 "," expr2 ")"NULLIF函数用于对两个参数的值进行比较,相等时返回NULL,不相等时返回expr1的值。...CHAR、VARCHAR与NCHAR、NVARCHAR不可以混合运算,否则函数返回错误。expr1和expr2中有一个是DATE类型,另一个是TIMESTAMP类型时,函数返回TIMESTAMP类型。...expr1与expr2类型为除上述外的其他情况,且两者类型相同时,函数返回相同的数据类型;类型不同,且无法按照一定的规则进行转换时,函数返回类型转换错误。...示例--expr1和expr2的值不相等时SELECT NULLIF('123','456') res FROM DUAL;RES----- 123--expr1和expr2的值相等时SELECT NULLIF...函数提前预防此类错误,减少异常捕获处理,避免应用在此中断SELECT year,month,product,amount/NULLIF(quantity,0) priceFROM sales_infoWHERE
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) | +---------
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
:与条件对应的结果值。 result_default:如果所有条件都不满足,则返回的默认结果值。...NULLIF函数 NULLIF 函数用于比较两个表达式,如果它们相等,则返回 NULL;否则返回第一个表达式的值。...示例代码: SELECT NULLIF(column1, column2) AS result FROM table_name; 在上面的示例中,如果 column1 的值与 column2 的值相等,...IFNULL函数 IFNULL 函数用于判断表达式是否为 NULL,如果为 NULL,则返回指定的默认值;如果不为 NULL,则返回表达式的值。...示例代码: SELECT IFNULL(column_name, default_value) AS new_column_name FROM table_name; 在上面的示例中,IFNULL 函数用于处理查询结果中的
ifnull::= IFNULL "(" expr1 "," expr2 ")"IFNULL函数有2个expr参数,当expr1不为NULL时返回expr1,否则返回expr2。...与expr2其中之一为布尔型时:另一方属于非数值型的其他大类时,函数返回VARCHAR类型。...expr1与expr2均属于字符型时,函数返回VARCHAR类型。...示例SELECT IFNULL(1, 2) res FROM DUAL; RES ------------ 1SELECT IFNULL(NULL, 2) res...1 SELECT IFNULL(5, CAST('0.232222' AS FLOAT)) res,TYPEOF (IFNULL(5, CAST('0.232222' AS FLOAT
`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
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(expr1,expr2) 假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。...mysql> SELECT IFNULL(1,0); -> 1 mysql> SELECT IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL...假设一个基于表达式的表的情况, 或MySQL必须在内存储器中储存一个临时表中IFNULL()的返回值: CREATE TABLE tmp SELECT IFNULL(1,'test') AS test...NULLIF(expr1,expr2) 如果expr1 = expr2 成立,那么返回值为NULL,否则返回值为 expr1。...mysql> SELECT NULLIF(1,1); -> NULL mysql> SELECT NULLIF(1,2); -> 1 注意,如果参数不相等,则 MySQL
SQL函数 IFNULL 测试NULL并返回适当表达式的函数。...大纲 IFNULL(expression-1,expression-2 [,expression-3]) {fn IFNULL(expression-1,expression-2)} 参数 expression...IfNull() { s myquery=3 s myquery(1)="SELECT TOP 20 Name," s myquery(2)="IFNULL(FavoriteColors...如果逻辑比较测试为True (A与B相同),则每个函数返回一个值;如果逻辑比较测试为False (A与B不同),则返回另一个值。这些函数允许执行NULL逻辑比较。...returns ex2 False returns ex1 NVL(ex1,ex2) ex1 = NULL True returns ex2 False returns ex1 NULLIF(ex1,
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 的值。
ROUND(IFNULL(SUM_ROWS_EXAMINED / NULLIF(COUNT_STAR, 0), 0)) AS rows_examined_avg, SUM_ROWS_AFFECTED...AS rows_affected, ROUND(IFNULL(SUM_ROWS_AFFECTED / NULLIF(COUNT_STAR, 0), 0)) AS rows_affected_avg...(SUM_ERRORS / NULLIF(COUNT_STAR, 0), 0) * 100 as error_pct, SUM_WARNINGS AS warnings, IFNULL(SUM_WARNINGS...ROUND(IFNULL(SUM_ROWS_EXAMINED / NULLIF(COUNT_STAR, 0), 0)) AS rows_examined_avg, FIRST_SEEN AS first_seen...(SUM_CREATED_TMP_TABLES / NULLIF(COUNT_STAR, 0), 0)) AS avg_tmp_tables_per_query, ROUND(IFNULL(SUM_CREATED_TMP_DISK_TABLES
函数 3.2.1 语法 ifnull(expr1,expr2) 说明:假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。...如: 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) 二 字符串函数...expr天; type的值有 DAY、MONTH、YEAR、MINUTE、SECOND、HOUR;如果expr为负数,则变成了减法 date_sub(date, interval expr type) 与date_add