Sql 多行的LIKE条件
我在Oracle DB中有一个表,其中有两列:Sql 多行的LIKE条件,sql,Sql,我在Oracle DB中有一个表,其中有两列: Area Service Request Count ------- ------------------------ e-life-first 5 e-life-second 3 Tariff 1 Disconnect 2 LTE-1
Area Service Request Count
------- ------------------------
e-life-first 5
e-life-second 3
Tariff 1
Disconnect 2
LTE-1 9
LTE2 10
我有一个查询来选择所有合适的表。。。
但我需要把一个WHERE条件,以选择任何东西“像”e-life&“像”LTE只
因此,结果必须是:
Area Service Request Count
------- ------------------------
e-life-first 5
e-life-second 3
LTE-1 9
LTE2 10
请支持像“%e-life%”这样的区域或像“%LTE%”这样的区域
应该是以下内容:
SELECT <columns to return>
FROM <table name>
WHERE Area LIKE '%e-life%'
OR Area LIKE '%LTE%'
选择
从…起
像“%e-life%”这样的区域
或类似于“%LTE%”的区域
如果“e-life”或“LTE”可以出现在您应该使用的字符串中的任何位置,则应返回区域中包含e-life或LTE的所有行:
WHERE Area Like '%e-life%' OR Areal Like '%LTE%'
但是,如果“e-life”或“LTE”始终出现在字符串的开头,则可以使用:
WHERE Area Like 'e-life%' OR Areal Like 'LTE%'
或者,如果“e-life”或“LTE”总是出现在字符串的开头,并且区域被索引,则您可以使用此选项,这将比上述两个选项中的任何一个执行得快得多:
SELECT
...
FROM ...
WHERE Area Like 'e-life%'
UNION ALL
SELECT
...
FROM ...
WHERE Area Like 'LTE%'
只需使用OR:
WHERE area LIKE 'e-life%' OR area LIKE 'LTE%'
使用
%
通配符。对于性能,仅在末尾添加通配符,如下所示:
WHERE (Area LIKE 'e-life%' OR Area LIKE 'LTE%')
编辑:根据HLGEM的注释添加括号。这应该是
或而不是和。在两个检查的开头都不需要通配符。我建议在OR条件周围使用括号,以明确在OR条件中分组在一起的内容,甚至当它是唯一的条件时。这可以防止以后在向查询添加其他条件时出现意外的错误结果(由于操作顺序)。