Как использовать предложение IN в операторе case DB2 sql - PullRequest
1 голос
/ 27 апреля 2020

При выполнении запроса, аналогичного приведенному ниже, в IBM DB2 sql появляется ошибка:

select case 
          when col1 in (select colA from tabl01) then 'xyz' 
          else 'abc' 
       end as colD
from tabl02

Ошибка похожа на

"Ошибка поиска - Ошибка базы данных DB2 : ОШИБКА [42625] [IBM] [DB2] SQL0582N Выражение CASE в предложении VALUES, предикате IN, предложении GROUP BY или ORDER BY не может содержать количественный предикат, предикат IN с использованием полной выборки или предикат EXISTS. "

Я думаю, что проблема заключается в использовании 'in' в моем заявлении case. Как я могу удалить эту ошибку?

1 Ответ

0 голосов
/ 01 мая 2020

Измените ваш запрос следующим образом. Должно работать на большинстве платформ DB2.

select case 
          when exists (select 1 from tabl01 lkup 
                        where lkup.cola = src.col1 
                        fetch first 1 rows only) 
            then 'xyz' 
          else 'abc' 
       end as cold
from tabl02 src
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...