postgres - CASE оценивает любое подвыражение, которое не требуется для определения результата - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть следующие 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...