У меня есть следующие 3 примера выражений case в postgres, которые я ожидаю оценить таким же образом. Однако первый и третий дают ОШИБКУ: неверный синтаксис ввода для целого числа: «2017,7». Второй, похоже, в порядке. Почему разница?
Postgres документация состояния
"Выражение CASE не оценивает никакие подвыражения, которые не являются
необходимо определить результат. "
select case when 0 = 0 then 1 < 2
when 0 = 2 then ('2017.7')::bigint > 2000
end
(DB Fiddle)
select case when 0 = 0 then 1 < 2
when 0 = 2 then 2000 = ('2017.7'||'')::bigint
end
(DB Fiddle)
select case when (array[1,2])[1] =1 then 1 < 2
when (array[1,2])[1] = 2 then 2000 = ('2017.7'||'')::bigint
end
(DB Fiddle)