IS IN (Выберите оператор, «значение», «значение») - PullRequest
0 голосов
/ 01 декабря 2010

Я пытаюсь запустить следующий SQL

DELETE FROM T_ATH_POSHLD WHERE T_ATH_POSHLD.A_INSID IN (SELECT T_ATH_POSHLD.A_INSID FROM T_ATH_POSHLD LEFT JOIN T_ATH_INS ON T_ATH_POSHLD.A_INSID = T_ATH_INS.A_INSID WHERE T_ATH_INS.A_INSCLSCDE1 = 'CASH' AND T_ATH_POSHLD.A_INSID NOT IN (SELECT A_INSID FROM T_ATH_CCY) AND A_ACCID IN (SELECT A_ACCID FROM T_ATH_EXTACC, '1212OEIC', '5667033ZS'))

и, в частности, пытаюсь проверить, есть ли ACCID в наборе значений, некоторые из которых получены из таблицы, а два жестко закодированы.Как бы мне этого добиться?

IN (SELECT A_ACCID FROM T_ATH_EXTACC, '1212OEIC', '5667033ZS')

Не работает, я получаю «Неверный синтаксический ошибку».

Спасибо

Ответы [ 2 ]

2 голосов
/ 01 декабря 2010

Вам необходимо использовать UNION, чтобы добавить 2 жестко закодированных значения к результирующему набору, который вы передаете предложению in.

IN (SELECT A_ACCID FROM T_ATH_EXTACC UNION ALL SELECT '1212OEIC' UNION ALL SELECT '5667033ZS')
0 голосов
/ 01 декабря 2010
IN (SELECT '1212OEIC', '5667033ZS', A_ACCID FROM T_ATH_EXTACC )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...