Я понимаю, что определенный подзапрос снижает производительность, и любопытно, что есть лучший способ написать такое утверждение Case. Я пытаюсь использовать «=», когда это возможно, но часто мне нужно выражение «как». Мои вопросы:
Если column_a = 1, будет ли этот оператор немедленно возвращать значение или все еще будет читать последующие операторы "или"?
case
when column_a = 1
or column_b like '%string a%'
or column_b like '%string b%'
or column_b like '%string c%'
then 'Return A'
when column_a = 2
or column_b like '%string d%'
or column_b like '%string e%'
or column_b like '%string f%'
then 'Return B'
.
.
.
else 'Return Z'
end
Лучше ли иметь длинный список "или", как показано, или лучше ставить каждую проверку в собственном выражении case, т.е.
case
when column_a = 1
then 'Return A'
when column_b like '%string a%'
then 'Return A'
when column_b like '%string b%'
then 'Return A'
.
.
.