Добрый день,
В настоящее время я работаю над кодом postgresql и перевожу его на sql (большинство, если он довольно простой), но я наткнулся на оператор case с массивом в нем и не могу понять правильный синтаксис, так как никогда раньше не встречал оператора case, используемого таким образом.
Я сделал быстрый пример того, что я пытаюсь сделать, но все равно выдает синтаксическую ошибку:
Select field3, field 4,
Case
When field in (1, 3, 7) then 1
When field in (2, 4, 6) then 2
When field in (5, 9) then 3
When field is null or ' ' then 4
Else
Case
When field2 = x then 1
When field2 = y then 2
Else End
End as fieldname
Вот оригинальный код, чтобы вы могли видеть, с чего я его редактирую. Оператор case (насколько я могу судить, как я уже упоминал ранее, я никогда не использовал case таким образом) использует 2 поля для получения желаемых результатов. Обратите внимание, что я не писал это изначально, а только переношу его из postgresql в t-sql.
CASE
WHEN rank IN (1,7,9) THEN '1'
WHEN rank IN (2,5,10) THEN '2'
WHEN rank IN (3,6) THEN '3'
WHEN rank IN (4,8) THEN '4'
WHEN tier IS NULL OR tier = '' THEN 'N/A' ELSE
CASE WHEN tier = 'HE' THEN '3'
WHEN tier = 'ME' THEN '2'
WHEN tier = 'LE' THEN '1' END
END AS tier
После работы с ответами ниже (один из них был опечаткой с моей стороны), теперь я получаю синтаксическую ошибку в предложении "Else End".
Я изменил вопрос так, чтобы утверждать, что это вопрос о вложенном операторе case, а не массиве
спасибо