|
Обход органичения 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-й вариант совсем не красив... быдлокодерство какое-то...
|
|