多行的LIKE条件

时间:2013-05-28 13:49:51

标签: sql

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

Area                Service Request Count
-------            ------------------------

e-life-first                5
e-life-second               3
Tariff                      1
Disconnect                  2
LTE-1                       9
LTE2                        10

我有一个查询来选择所有正确的表格... 但是我需要设置一个WHERE条件来选择Any Thing“LIKE”e-life& “只喜欢”LTE!

所以结果必须是:

Area                Service Request Count
-------            ------------------------

e-life-first                5
e-life-second               3
LTE-1                       9
LTE2                        10

请支持

5 个答案:

答案 0 :(得分:1)

使用%通配符。对于性能,只需在末尾添加通配符,如下所示:

WHERE (Area LIKE 'e-life%' OR Area LIKE 'LTE%')

编辑:为每个HLGEM的评论添加括号。

答案 1 :(得分:0)

WHERE Area LIKE '%e-life%' OR Area LIKE '%LTE%'

答案 2 :(得分:0)

应该是:

SELECT <columns to return>
FROM <table name>
WHERE Area LIKE '%e-life%'
OR Area LIKE '%LTE%'

那应该返回Area包含e-life或LTE的所有行

答案 3 :(得分:0)

如果&#34; e-life&#34;或者&#34; LTE&#34;可以出现在您应该使用的字符串中的任何位置:

WHERE Area Like '%e-life%' OR Areal Like '%LTE%'

然而,如果&#34; e-life&#34;或者&#34; LTE&#34;将始终出现在您可以使用的字符串的开头:

WHERE Area Like 'e-life%' OR Areal Like 'LTE%'

或者如果&#34; e-life&#34;或者&#34; LTE&#34;将始终出现在字符串的开头,并且区域被编入索引,您可以使用它,这将比上述两个选项中的任何一个更快地执行:

SELECT
    ...
    FROM ...
    WHERE Area Like 'e-life%'
UNION ALL
SELECT
    ...
    FROM ...
    WHERE Area Like 'LTE%'

答案 4 :(得分:0)

只需使用OR:

WHERE area LIKE 'e-life%' OR area LIKE 'LTE%'