Имя: Пароль:
1C
1С v8
Обход органичения 10 уровней вложености CASE в Ms SQL
0 H A D G E H O G s
 
04.05.12
18:42
ms sql запрещает использовать более 10 уровней вложенности case вида

CASE WHEN A=0 THEN True ELSE
CASE WHEN B=0 THEN True ELSE
CASE WHEN C=0 THEN True ELSE
...... и.т.д.
END
END
END

Если я его перепишу как 1 case с ветвлением это будет одно и то же?:

CASE
WHEN A=0 THEN True
WHEN B=0 THEN True
WHEN C=0 THEN True
...... и.т.д.
END
1 MRAK
 
04.05.12
18:45
(0) я могу ошибаться, но думаю что вторая конструкция не имеет ограничений по количеству.

Попробуй
2 Serginio1
 
04.05.12
18:47
А ты в Delphi If ом пользуешься когда есть возможность применить Case?
Case в любом случае выгодней, т.к. в большинстве случаев там применяется Хэш таблица для больших количеств сравнений
3 H A D G E H O G s
 
04.05.12
18:51
(2) case конечно, только его не всегда применить можно.
4 Serginio1
 
04.05.12
18:57
(3) Ну это в Delphi. В немерле народ патерн матчингом во всю орудует, а в C# case и к строкам применяют. В любом случае подходы те же хэш таблица если сравнений больше 3.
5 MRAK
 
04.05.12
19:27
(0) в pl/sql по крайней мере, 2-й вариант можно было нагромождать, сколько хошь.

Хотя, может и на 1-й ограничений не было, но 1-й вариант совсем не красив... быдлокодерство какое-то...