J'ai une requête énorme qui utilise cas/quand souvent. Maintenant, j'ai ce SQL ici, qui ne fonctionne pas.Comment utiliser le cas/quand de T-SQL?
(select case when xyz.something = 1
then
'SOMETEXT'
else
(select case when xyz.somethingelse = 1)
then
'SOMEOTHERTEXT'
end)
(select case when xyz.somethingelseagain = 2)
then
'SOMEOTHERTEXTGOESHERE'
end)
end) [ColumnName],
ce qui cause problème est xyz.somethingelseagain = 2
, il dit qu'il ne pouvait pas lier cette expression. xyz est un alias pour une table qui est jointe plus bas dans la requête. Qu'est-ce qui ne va pas ici? Enlever l'un des 2 cas/whens corrige cela, mais j'ai besoin des deux, probablement encore plus de cas.
Works, ce qui est la différence? :) – grady
Disons que j'ai quelques-uns des whens comme des doublons, comme ceci: QUAND xyz.something = 1 et xyz.abc = 2 ALORS 'someText' QUAND xyz.something = 1 et xyz.abc <> 2 ALORS 'SOMEOTHERTEXT' Puis-je d'une manière ou d'une autre dire que si le premier a été réglé, les prochains seront sautés? Quelque chose qui échappe à l'affaire/quand? – grady