我有一个"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 次 |
| 最近记录: |