В C# можно написатьпроваливается саз в SQL
switch(num)
{
case 0:
case 1: // do something; break;
case 2:
............
...........
case n: // do something break;
default: //do something; break;
}
Как я могу добиться подобного рода вещей в SQL SERVER?
Я не говорю о простом способе написания CASE в SQL SERVER. Я говорю о том, нужно ли мне выполнять один и тот же король операции в 2 или более случаях как то, что я показал в фрагменте кода на C#, как делать подобные вещи в CASE SQL?
EDIT:
Я получил некоторые хорошие ответы здесь уже. Как я могу преобразовать следующие
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]
... во что-то вроде:
SELECT CASE WHEN [A],
CASE WHEN [B],
CASE WHEN [C],
CASE WHEN [D] = num THEN '-' ELSE '' END [A] or [B] or [C] or [D]
На самом деле мне это нужно в запросе PIVOT. Вчера вечером я решил проблему. Но я не уверен в этом письме. Потому что каждый раз я делаю то же самое. Так есть ли лучший способ представить это?
Не знаете, о каком поведении вы говорите. Выведенный оператор switch (как только мы добавляем перерывы, необходимые для его компиляции) сопоставляет непосредственно простой оператор TSQL. Попробуйте предоставить некоторые C#, которые компилируются, и чье поведение вы хотите реплицировать. –
Обратите внимание, что C#, FWIW, не поддерживает провал. –
Я знаю, что это немного поздно, но вы можете использовать логическое выражение типа «или» в инструкции when, чтобы ввести несколько условий, с которыми связано одно и то же действие. – deutschZuid