在寫sql語句時,或者是在pl/sql中,經常需要在乙個sql語句中,根據不同的條件,有多種處理方法,如簡單例子:**一種商品時,單價不同,折扣不同,對這種需求的處理,如果分情況處理,將會很麻煩,如果用case語句,就可以在一條sql語句中得到想要的結果。
首先看一下,case的語法:
case when 條件a then 結果a when 條件b 結果b ........ else 結果n end
和decode 不同的是,decode 只能針對固定的值,而 case 可以用不是固定值,需是乙個條件。
現在有以下的需求,有乙個字串,最後的兩位可能是 '/r' ,'/t' 另外,有的後兩位沒有前面的'/r' ,'/t' ,現在針對不同的需要,要將 '/r' ,'/t' 取掉,沒有 '/r' ,'/t', 就不做處理。
具體字串如下: a01jcl-a01jcl/gf117f0001tr/r
sql寫法可以如下:
select (case
when instr(code, '/r') > 0 then
substr(code, 1, instr(code, '/r') - 1)
when instr(code, '/t') > 0 then
substr(code, 1, instr(code, '/t') - 1)
else
'0'end)
from table_a t ;
使用case時,要用括號括起來。
幾個sql語句中的case使用
表結構 field type null key default extra id int 11 no pri name varchar 20 yes null char 1 yes null addr varchar 50 yes null 1.select id,name case when m ...
sql語句中as的用法
as 一般用在兩個地方,乙個是query的時候,用來重新指定返回的column 名字 如 乙個table 有個column叫 id,我們的query是 select id from table1.但是如果你不想叫id了,就可以重新命名,如叫 systemid 就可以這樣寫 select id as ...
SQL中Case語句用法
sql中,case具有兩種格式。即簡單case函式和case搜尋函式。下文中筆者與大家一起討論sql中case語句用法。簡單case函式 case when 1 then 男 when 2 then 女 else 其他 end case搜尋函式 case when 1 then 男 when 2 t...