SELECT CASE
WHEN vGlTransType = 'R' THEN tkt_seq_num
WHEN vGlTransType in ('A','E','X') then
break
END
ответ
нет петли в том случае использования
ELSE нуль
до конца, чтобы вернуть нулевое значение, если другие условия не выполняются
Как Алекс уже упоминалось, вы хотите ELSE
:
SELECT CASE WHEN vGlTransType = 'R' THEN tkt_seq_num
ELSE NULL
END
ELSE NULL
по умолчанию btw, это означает, что вы можете просто пропустить его:
SELECT CASE WHEN vGlTransType = 'R' THEN tkt_seq_num
END
У вас много отрицательных ответов, потому что вы используете неправильный словарный запас. Позвольте мне процитировать article I wrote on CASE:
SQL является декларативным языком: он не обеспечивает контроль над потоком программы, как если делает для императивных программ. Тем не менее, SQL имеет нечто подобное: выражение case. Быть выражением - скорее , чем структурой управления - означает, что случай меняет результат формул (выражения) на основе условий. Его использование аналогично тройному оператору ?: На других языках программирования.
Ваш вопрос предполагают, что вы думаете CASE
в SQL похож на C-х SWITCH
(плюс CASE
). Но это не так.
Почему вы хотите переломить? Что должно случиться ?! – sagi
, когда первый случай не выполняется, я не хочу никакой ценности, я просто хочу выйти из цикла, и согласно мне по умолчанию он принимает значение null, когда первое условие не выполняется. –
Почему бы просто не добавить фильтр 'WHERE vGlTransType не в ('A', 'E', 'X')'? – sagi