(T) оператор SQL (не выражение)
Есть ли альтернативный способ сделать несколько операторов на основе условий: если (expr1), выберите этот вариант, если (expr2), затем выберите этот
... случай был бы полезен для этой цели, если бы он не ограничивался выражениями. Я использую sql server
Код до сих пор:
if(@code=57) begin (lots of complex statements) end
if(@code=58) begin (lots of other complex statements) end
if(@code=59) begin (lots of other complex statements) end
if(@code=60) begin (lots of other complex statements) end
Я не могу использовать регистр, потому что это выражение и оно возвращает значения, оно не может выполнять операторы.
1 ответ
IF - это процедурный оператор, то есть он направляет поток операторов в пакете или процедуре из нескольких операторов. Дело не может сделать это. Хотя это может выглядеть как процедурное утверждение, CASE на самом деле является функцией; он возвращает разные значения в зависимости от ввода. CASE не перенаправляет управление потоком программы. CASE может вызывать подзапросы; это может быть неразумно с точки зрения производительности, но даже при этом подзапросы могут возвращать только одно значение.