J'ai une déclaration qui est compliquée comme ceci:cas sql/instruction 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
Je veux simplifier cela en quelque chose comme ça, est-il possible:
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
S'il vous plaît utiliser les balises de code ... – JNK
Ce n'est pas une réponse à la question que vous avez posée, mais pensez à utiliser l'instruction IN: 'cas où x.optA IN ('AB', 'FG', 'LM ',' QR ') ' –
@Matthew Jones - Nulls ne cassera pas cela, cependant, et il fonctionne un scan lent, je pense aussi. EXISTS peut être plus rapide. – JNK