Sql 多行的LIKE条件

Sql 多行的LIKE条件,sql,Sql,我在Oracle DB中有一个表,其中有两列: Area Service Request Count ------- ------------------------ e-life-first 5 e-life-second 3 Tariff 1 Disconnect 2 LTE-1

我在Oracle DB中有一个表,其中有两列:

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条件中分组在一起的内容,甚至当它是唯一的条件时。这可以防止以后在向查询添加其他条件时出现意外的错误结果(由于操作顺序)。