将LIKE与列表一起使用

时间:2012-03-23 14:17:02

标签: postgresql

我需要选择列值与列表中的任何值相似的记录:

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 个答案:

答案 0 :(得分:2)

这是一个交叉产品,所以如果后缀(即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)