En C# nous pouvons écrirefallthrough SQL CASE Déclaration
switch(num)
{
case 0:
case 1: // do something; break;
case 2:
............
...........
case n: // do something break;
default: //do something; break;
}
Comment puis-je obtenir le même genre de choses dans SQL Server?
Je ne parle pas de la manière simple d'écrire CASE dans SQL SERVER. Je parle si j'ai besoin d'effectuer le même roi d'opération dans 2 cas ou plus que ce que j'ai montré dans l'extrait de code C#, comment faire le genre de choses similaires dans le CAS de SQL?
EDIT:
J'ai eu quelques réponses belles d'ici déjà. Comment puis-je convertir les éléments suivants
SELECT CASE
WHEN [A]= num THEN '-' ELSE '' END [A],
CASE WHEN [B]= num THEN '-' ELSE '' END [B],
CASE WHEN [C]= num THEN '-' ELSE '' END [C],
CASE WHEN [D]= num THEN '-' ELSE '' END [D]
... en quelque chose comme:
SELECT CASE WHEN [A],
CASE WHEN [B],
CASE WHEN [C],
CASE WHEN [D] = num THEN '-' ELSE '' END [A] or [B] or [C] or [D]
En fait, je besoin de cela dans une requête PIVOT. La nuit dernière, j'ai résolu le problème. Mais je ne suis pas convaincu par cette manière d'écrire. Parce que chaque fois, je fais la même chose. Alors, y a-t-il une meilleure façon de présenter cela?
Vous ne savez pas exactement de quel comportement vous parlez. L'instruction switch que vous avez (une fois que nous avons ajouté les ruptures nécessaires pour la compiler) correspond directement à une simple instruction de requête TSQL. Essayez de fournir un C# qui compile et dont vous voulez répliquer le comportement. –
Notez que C#, FWIW, ne prend pas en charge les chutes. –
Je sais que c'est un peu en retard, mais vous pouvez utiliser une expression logique comme 'ou' dans une instruction when pour introduire plusieurs conditions traitées par la même action. – deutschZuid