T SQL中case語句的兩種寫法及區別

2022-06-15 05:27:12 字數 811 閱讀 5247

t-sql中的case語句相信大家一定不陌生,但是它有2種寫法,如下:

寫法一:

case 變數

when 值1 then..

when 值2 then..

else ..

end寫法二:

case

when 邏輯表示式 then

-- true的情況

else

-- false的情況

end如果是二叉分支,筆者建議寫法二

因為,如果遇到null的情況,則必須使用寫法二!!

舉個聯合更新的例子

場景:把錶一中某個日期根據情況更新成加上表二中另外乙個日期,如果表二中的日期沒有,則

加上預設值1。

如下:1

updatea2

seta.field3 

=dateadd

(year

, case

when

b.field2 

isnull

then

1else

b.field2   

end, a.field1)

3from

table1 a 

inner

join

table2 b4on

a.id 

=b.id

5where

--other conditions

以上該情況,如果使用寫法一,null的情況很可能判斷不出來!!

T SQL中Case的用法

case語句是條件判斷語句的一種,可以完成比if語句更強的判斷,可以解決if語句中巢狀過多的問題。語法 case when 條件a then 結果a when 條件b 結果b else 結果n end 和decode 不同的是,decode 只能針對固定的值,而 case 可以用不是固定值,需是乙個...

兩種複製表的語句

兩種表複製語句select into 和 insert into select insert是t sql中常用語句,insert into table field1,field2,values value1,value2,這種形式的在應用程式開發中必不可少。但我們在開發 測試過程中,經常會遇到需要複...

兩種表複製語句

第一種 insert into table select 例子 insert into table2 a,c select a,c from table1 第二種 select into from 語句 在sqlserver中 語句形式為 select vale1,value2 into table...