(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 может вызывать подзапросы; это может быть неразумно с точки зрения производительности, но даже при этом подзапросы могут возвращать только одно значение.

Другие вопросы по тегам