我的情况 - 我必须有两个表,每个表有几列,我需要在这两个表的某些列中找到某些字符串。例如,搜索字符串可以是' ExampleString1' ,' ExampleString2%'大约20个字符串,每个表大约5-6列。
我使用以下内容在多列中找到至少一个字符串,但这甚至不起作用。
select * from table1 a where upper('ExampleString1%') in (a.Column1, a.column2, a.column3)
虽然我可以做一些基本的SQL查询,但我不熟悉sql。我想知道解决方案或我可以研究的任何材料以获得解决方案。
由于 RK
答案 0 :(得分:3)
您可以组合所有必填字段并对其进行检查:
select *
from table1 a
where NVL(upper(a.Column1),'')||NVL(upper(a.column2),'')||NVL(upper(a.column3),'') like upper('ExampleString1%')
答案 1 :(得分:0)
这里可以通过使用 REGEXP_LIKE 来避免使用 upper()
SELECT * FROM TABLE A WHERE
REGEXP_LIKE(COLUMN1 || COLUMN2 || COLUMN3, '<search expression>', 'i')