lateral(select pole::jsonb from .. where false)t on ...
неважно какое условие будет в условии where все равно важно что бы pole действительно могло уметь преобразовываться в jsonb
у меня ситуация такая что в значении колонки pole могут быть и не только json
и следовательно там где идет проверка where вместо false я написал эту проверку, по идее должны были эти строки отстрелиться
но по факту дает ошибку преобразования
пример косячного значения 'catalog/region/?regionCode=43'
будет работать если select pole::jsonb from переписать на
select case when проверка_валидности_pole_как_xml = TRUE then pole::jsonb else null end from
почему так?
рискну предположить, что WHERE даёт гарантии, что строки не будет в ответе на запрос, но в процессе выполнения любые строки и выражения могут вычисляться, по-этому надо условие в само выражение вводить тоже
Обсуждают сегодня