在工作中,有如下需求.通過case的嵌套解決了此問題!特此記錄一下!(我用的是sql server 2005)
在查詢的時候,有這樣的一個需求
數據庫內容如下:
iD description
1 TableClassA.getName()
2 TableClassB.getName(),exception
3 TableClassC,getName()
4 TableClassD,getName().null
我想查詢輸入以下結果:
iD description
1 TableClassA
2 TableClassB
3 TableClassC
4 TableClassD
及查詢的結果是.號或,前的內容
SQL如下
select id,
case
when (CHARINDEX(',',description)>0) and (CHARINDEX('.',description)>0)
then --在這個做了判斷,如同時包含.和,則判斷.和,那個在前
case
when CHARINDEX(',',description)>CHARINDEX('.',description) then left(description,CHARINDEX('.',description)-1)
when CHARINDEX(',',description)<CHARINDEX('.',description) then left(description,CHARINDEX(',',description)-1)
end
when (CHARINDEX(',',description)>0) then left(description,CHARINDEX(',',description)-1)
when (CHARINDEX('.',description)>0) then left(description,CHARINDEX('.',description)-1)
else description
end
as description
from tablename