我正在尝试编写一个查询,我需要检查另一个嵌套查询返回的字符串数组中是否存在值,我该怎么做呢,
例如,我必须检查是否,
1234 is present in [abc_1234,fgh_12345,ghi_5343]
因此字符串abc_1234中存在1234,因此我不会选择1234。
答案 0 :(得分:0)
我希望我能正确理解你的要求。您有一个返回字符串的查询,例如' abc_1234'和' fgh_12345'。你有一个包含值的表,例如' 1234&#39 ;.您希望从表中选择值不属于现有查询的任何字符串的行。
这是反连接模式发挥作用的地方。您外部加入了不需要的行,因此找不到合作伙伴的所有行都是所需的行:
select *
from mytable m
left join (<your query here>) q on instr(q.string, m.value) > 0
where q.string is null;
(而不是INSTR
您还可以使用LIKE
:on q.string like '%' || m.value || '%'
。您选择哪个字符串操作无关紧要。)