Multiple A l'intérieur sans expression CASE dans SQL?
Question
DECLARE @TestVal int
SET @TestVal = 5
SELECT
CASE
WHEN @TestVal <=3 THEN 'Top 3'
ELSE 'Other'
END
J'ai vu cet exemple de code en ligne, mais je ne pouvais pas trouver un exemple où il n'y avait pas d'expression et il y avait plus d'un quand, alors je me demande si ce genre de chose est OK:
DECLARE @TestVal int
SET @TestVal = 5
SELECT
CASE
WHEN @TestVal <=3 THEN 'Top 3'
WHEN (select ...) = 1 THEN 'Other Value'
WHEN (select ...) = 2 THEN 'Other Value 2'
ELSE 'Other'
END
Ou dois-je dire CASE WHEN pour chaque ligne?
La solution
Case prend la forme suivante
CASE WHEN Condition THEN Result
WHEN Condition2 THEN Result2
ELSE Default
END
Modifier
Cela suppose votre aide d'autres SGBD Microsoft SQL Server peuvent être différents
Autres conseils
Oui, c'est très bien, mais je voudrais aligner le « quand » s verticalement et expliquer plus comme ceci:
SELECT
CASE
WHEN @TestVal <=3 THEN 'Top 3'
WHEN @TestVal <=10 THEN 'Top 10'
WHEN @TestVAl <=25 THEN 'Top 25'
ELSE 'Other'
END
La mise en forme peut-être juste un petit problème de démarquage, mais le (select...)
dans votre exemple compliqué ce que devrait être un extrait plus simple.
SELECT
CASE
WHEN @TestVal <=3 THEN 'Top 3'
WHEN @TestVal <=10 THEN 'Top 10'
WHEN @TestVAl <=25 THEN 'Top 25'
ELSE 'Other'
END
En ce qui concerne les déclarations de cas de nidification, cela peut se faire aussi bien (jusqu'à 10 déclarations de cas imbriqués autorisés dans sql)