我有很複雜這樣的語句:SQL情況/ if語句
select x.ColA as ColA
, case when x.optA = 'AB' or x.optA = 'FG' or x.optA = 'LM' or x.optA = 'QR' then X.ColB/100 else X.ColB/900 End as ColB
, case when x.optA = 'AB' or x.optA = 'FG' or x.optA = 'LM' or x.optA = 'QR' then X.ColC/100 else X.ColC/900 End as ColC
, case when x.optA = 'AB' or x.optA = 'FG' or x.optA = 'LM' or x.optA = 'QR' then X.ColD/100 else X.ColD/900 End as ColD
, case when x.optA = 'AB' or x.optA = 'FG' or x.optA = 'LM' or x.optA = 'QR' then X.ColE/100 else X.ColE/900 End as ColE
From TableA
我想簡化成這樣的事情這一點,是有可能:
select x.ColA as ColA
case when x.optA = 'AB' or x.optA = 'FG' or x.optA = 'LM' or x.optA = 'QR' then
, X.ColB/100 as ColB
, X.ColC/100 as ColC
, X.ColD/100 as ColD
, X.ColE/100 as ColE
Else
, X.ColB/900 as ColB
, X.ColC/900 as ColC
, X.ColD/900 as ColD
, X.ColE/900 as ColE
End
From TableA
請使用代碼標記... – JNK 2010-07-30 19:25:51
這不是一個答案,你問的問題,但考慮使用IN語句:'情況下x.optA IN(「AB」,「FG」,'LM 」,‘QR’)' – 2010-07-30 19:27:45
@Matthew瓊斯 - 不會空值打破,不過,它運行慢掃描我想太多。 EXISTS可能會更快。 – JNK 2010-07-30 19:30:02