最近遇到几个之前没有遇到的SQL语法,觉得很有用处,所以在此分享给大家:
IF表达式
IF( expr1, expr2, expr3)
expr1的值为TRUE时,则返回值为expr2
expr1的值为FALSE时,则返回值为expr3
如下:
select if(TRUE,1,2);
返回1
select if( FALSE,1,2);
返回2
例:找出售价为50的Java数,将其标注为“已售完”
select *,if(book_name='java','已卖完','有货') as product_status from book where price =50
IFNULL表达式
IFNULL( expr1, expr2)
判断第一个参数expr1是否为NULL:
如果expr1不为空,直接返回expr1;
如果expr1为空,返回第二个参数expr2;
常用在算数表达式和组函数中,用来对null值进行转换处理(返回值是数字或者字符串)
“CASE -WHEN -THEN”表达式
1.简单case函数
case 列名
when 条件值1 then 选项1
when 条件值2 then 选项2
...
else 默认值(其他) end
语义:
将case后的列名分别与每个when句子后面的条件值进行相等比较,如果一旦和某个when子句后面的值相等,则返回相应的then子句后面的值,如果和所有的when子句后面的值都不相等,则返回else子句后面的值,如果没有else则返回null。
例如:
2.case搜索函数
case
when 列名=条件值1 then 选项1
when 列名=条件值2 then 选项2
...
else 默认值 end
语义:
如果when后面的条件语句为TRUE,则返回相应when子句后面的值;
如果所有的when子句后面的条件语句都为FALSE,则返回else子句后面的值;
如果没有else部分,则返回null
例如: