SQL中關鍵字Case的使用


本文非原創

 

它主要用來簡化SQL表達式,在任何允許使用表達式的地方均可使用,
根據條件的不同返回不同的值。

注意:它不能單獨執行,只能作為語句的一部分使用,
分為簡單 case 表達式和搜索 case 表達式。

1.簡單 case 表達式:

它是一個測試表達式與一組簡單表達式進行比較,如果和某一個值相等,
則返回對應表達式的值。


語法: case 表達式 / 列名變量
when 測試值1 then 結果表達式1
when 測試值2 then 結果表達式2
……
else 結果表達式
end

例:(1)select 姓名=case book_name
when '++c' then 'c語言'
when 'hello' then 'hahaha'
when 'hello1' then 'sdf'
when 'hello2' then 'haasdfghaha'
else '沒有值'
end from yuesubiao

(2)declare @aa varchar(10)
set @aa=(select egg_name from egg where egg_shu=14)
select case @aa
when 'hhh' then '1111'
when 'll' then '222'
else'aaaaaaaaaaaaaaa'
end



2.搜索 case 表達式:

它是一個測試表達式與一組搜索布爾表達式進行比較,
如果和某一個值相等,則返回對應表達式的值。


語法: case
when 布爾表達式1 then 結果表達式1
when 布爾表達式2 then 結果表達式2
……
else 結果表達式
end

 

例: (1) select egg_name,egg_liang,所得稅=
case
when (egg_zhong<=500) then '1111111'
when (egg_zhong<=5000) then'222222'
when (egg_zhong<=50000) then'33333333'
else'444444'
end
from egg

 

(2) select book_name,www=
case
when left(ltrim(book_addr),3)='hgf' then '123'
when left(ltrim(book_addr),3)='hhh' then '456'
when left(ltrim(book_addr),3)='456' then '789'
else'AAAAAAAA'
end
from YI

 

下面博文講了Case的常見使用情況,很不錯。

http://www.cnblogs.com/Ronin/archive/2006/07/20/455388.html#2810859

http://www.cnblogs.com/Ronin/archive/2006/07/20/455756.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM