sql中類似switch case語句的用法

2021-06-10 03:15:12 字數 1335 閱讀 9417

--sql中類似switch case語句的用法

select getdate()as 日期,

case month(getdate())  

when 11 then '十一'  

when 12 then '十二'  

else substring('一二三四五六七**十',month(getdate()),1)  

end +'月' as 月份

--在一般select中的應用:case 的典型用法

select a.returntkrate_discountrate,

'range' =

case

when a.returntkrate_stahoursinterval>0 then '正數'

when a.returntkrate_stahoursinterval<0 then '負數'

else '0'

end

from baseinfo.returntkrate a

order by a.returntkrate_stahoursinterval

--group by子句中的case: 

select 'number of record', count(*)

from baseinfo.returntkrate a

group by

case when a.returntkrate_stahoursinterval>0 then '正數'

when a.returntkrate_stahoursinterval<0 then '負數'

else '0'

end--組合這些選項,新增乙個 order by 子句,如下所示:

select

'range' =

case

when a.returntkrate_stahoursinterval>0 then '正數'

when a.returntkrate_stahoursinterval<0 then '負數'

else '0'

end

from baseinfo.returntkrate a

group by

case when a.returntkrate_stahoursinterval>0 then '正數'

when a.returntkrate_stahoursinterval<0 then '負數'

else '0'

end--為了在 group by 塊中使用 case,查詢語句需要在 group by 塊中重複 select 塊中的 case 塊。 

--再深入一步,分組排序結果集

sql 中 top的用法 實現類似limit

建立乙個employees表 欄位和內容如下 select top 5 from employees 取出 employees表中前5條記錄 select top 60 percent from employees 2.取出前5到前10的資料 select top 5 from select top...

使用EF To Linq執行類似sql的in語句

使用ef的時候,我們經常會遇到一些查出在xx中的資料,類似sql in查詢,比如查出id為18982,18976,1978的資料 我們可能會這樣寫 var wkids 18982,18976,1978 var wks currentrepository.getallquery x wkids.con...

在DataSet實現類似sql語句的查詢

在脫離資料庫的dataset實現類似sql語句的查詢 也就是select from tablename where 這樣的功能 將從dataset中查詢出來的資料以行的形式繫結到datagridview1中 dataset ds new dataset ds.readxml c dataset na...