我需要选择列值与列表中的任何值相似的记录:
select *
from bulkjob
where bulkjob_owner LIKE (
SELECT '%' || sys_user_login
FROM sys_user
WHERE sys_user_type_id IN (3, 4, 5)
)
这不起作用:
错误:用作表达式
的子查询返回多行
有没有办法实现这一点,也许使用Postgresql函数?
答案 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)