Использование LIKE со списком - PullRequest
1 голос
/ 23 марта 2012

Мне нужно выбрать записи, в которых значение столбца подобно любому из значений в списке:

select * 
from bulkjob
where bulkjob_owner LIKE (
    SELECT '%' || sys_user_login
    FROM sys_user
    WHERE sys_user_type_id IN (3, 4, 5)
)

Это не работает:

ОШИБКА: более чемодна строка, возвращаемая подзапросом, используемым как выражение

Есть ли способ сделать это, возможно, используя функции Postgresql?

1 Ответ

2 голосов
/ 23 марта 2012

Это перекрестный продукт, поэтому вы можете получить дубликаты, если суффиксы (то есть имена sys_user_login перекрываются: скажем, «joe» и «marry-joe»). Так что вам может потребоваться сделать отдельный или подзапрос.

SELECT b.*
  FROM bulkjob b
      ,sys_user s
  WHERE b.bulkjob_owner LIKE '%' || s.sys_user_login
    AND s.sys_user_type_id IN (3,4,5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...