我有一个"Test"
包含 15 个不同数据类型的不同列的表。
我正在寻找具有像"ABC"
. 但是"ABC"
可以出现在任何列中,我想找到具有"ABC"
.
我不能使用 WHERE 子句限制行,因为我真的不知道ABC
驻留在哪一列?有没有办法做到这一点?
好吧,有一种简单明了的“蛮力”方式:
SELECT *
FROM "Test"
WHERE (col1 LIKE '%ABC%' OR
col2 LIKE '%ABC%' OR
col3 LIKE '%ABC%' OR
...
col15 LIKE '%ABC%');
Run Code Online (Sandbox Code Playgroud)
如果您没有其他WHERE
表达式,则不需要括号。可能比为单个LIKE
测试连接所有列更快(并且在任何情况下都更健壮)。
小智 1
使用 instr 内置函数,您可以这样做:
Select * from Test where instr(col1||col2||col3,'ABC') <> 0;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
67447 次 |
最近记录: |