我有类似的疑问:
SELECT fname, lname
FROM names
WHERE gcode LIKE %5536% OR fname LIKE %3663%
有50个这样的条件,这些条款有点长,但这是一般的想法。我们不能制作临时表,所以这就是我们要走的路。
我尝试返回输出在其自己的列中匹配的类似条件(即,在其自己的列中返回%5536%
)
我可以通过编程方式突出显示它,但有没有办法在SQL中执行此操作?
答案 0 :(得分:5)
您可以将匹配条件存储在集合中:
SELECT n.fname,
n.lname,
t.COLUMN_VALUE AS match
FROM name n
INNER JOIN
TABLE( SYS.ODCIVARCHAR2LIST( '%5536%', '%3663%' ) ) t
ON ( n.gcode LIKE t.COLUMN_VALUE );
答案 1 :(得分:1)
您可以在SQL中执行此操作。这是一种方法:
select n.*
from (select n.*,
((case when gcode LIKE %5536% then '5536;' end) ||
(case when gcode LIKE %3663% then '3663;' end) ||
. . .
) as matches
from names
) n
where matches is not null;