-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 条件来选择任何东西“LIKE”e-life 和“LIKE”LTE ONLY!

所以结果必须是:

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

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

请支持

4

5 回答 5

1

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

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

编辑:根据 HLGEM 的评论添加括号。

于 2013-05-28T13:58:06.493 回答
0
WHERE Area LIKE '%e-life%' OR Area LIKE '%LTE%'
于 2013-05-28T13:56:29.373 回答
0

应该是这样的:

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

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

于 2013-05-28T13:57:18.783 回答
0

如果“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”将始终出现在字符串的开头并且 Area 被索引,您可以使用它,这将比上述两个选项中的任何一个更快地执行:

SELECT
    ...
    FROM ...
    WHERE Area Like 'e-life%'
UNION ALL
SELECT
    ...
    FROM ...
    WHERE Area Like 'LTE%'
于 2013-05-28T13:57:19.370 回答
0

只需使用 OR:

WHERE area LIKE 'e-life%' OR area LIKE 'LTE%'
于 2013-05-28T13:57:56.200 回答