sql控制流if()、case when then

tb_user:blog

 

一、if (expr1,expr2,expr3)           #若是expr1成立,則返回expr2,不然返回expr3
示例:
select  name, if (sex=1,'男','女')  sex  from  tb_user        #若是sex是1,sex查詢結果返回‘男’,不然返回‘女’select

 

二、ifnull(expr1,expr2)              #若是expr1不爲null,則返回expr1,不然返回expr2
示例:
select  name  姓名, ifnull(sex, '其餘')  sex  from  tb_user            #若是sex是null,則返回‘其餘;sex不是null,則正常返回im

 

三、case  column_name  when  expr1  then  result1  else  result2  end
#若是column_name是1,sex查詢結果返回‘男’,不然返回‘女’
示例:
select  name  名字,  case  sex  when  1  then   '男'   else   '女'   end   性別  from  tb_user
#若是sex是1,sex查詢結果返回‘男’,不然返回‘女’查詢

 

四、case  column_name  when  expr1  then  result1  when  expr2  then  result2  end
#若是column_name是expr1返回result1,若是column_name是expr2返回result2,when * then *能夠寫多個,end 表示結束
示例1:
select   name  名字,  case  sex  when  1  then  '男'   when  2  then  '女'  end  性別  from   tb_user
#若是sex是1,sex查詢結果返回‘男’;sex是2,sex查詢結果返回‘女’img

示例2(多條件):
select  name  名字, case  sex  when  1  then  '男'  when  2  then  '女'  end  性別,  case  when  age<=16   then  '未成年'   when  age>16   and   age<=30   then  '青年'   when   age>30  and   age<=50  then   '壯年'   else   '老年'   end   年齡   from   tb_user
#年齡小於等於16顯示爲‘未成年’;年齡大於16且小於等於30顯示爲‘青年’;
#年齡大於30且小於等於50顯示爲‘壯年’;年齡大於50顯示爲‘老年’;co

相關文章
相關標籤/搜索