如何在SELECT
中使用WHERE
语法,例如我有以下代码:
SELECT
blah...blah..
...
WHERE
(
(APM_AlertsAndReportsData.ApplicationName = 'instance: tomcat6_noram (SNMP)') AND
(APM_AlertsAndReportsData.ComponentName = 'Memory Heap Used (B)') AND
(APM_AlertsAndReportsData.StatisticData >= 1908932600)
)
这里我比较的值大于或等于1908932600
。我想使用SELECT
代替1908932600
,因此它会自动比较值而不是查询中的静态代码。
答案 0 :(得分:4)
您可以使用子查询,只需围绕它括号:
APM_AlertsAndReportsData.StatisticData >= (SELECT ... FROM ...)
请注意,它可能会慢慢运行,具体取决于您在子查询中执行的操作。使用JOIN可能更好。
答案 1 :(得分:3)
您需要WHERE子句中的“相关子查询”:
WHERE
(
(APM_AlertsAndReportsData.ApplicationName = 'instance: tomcat6_noram (SNMP)') AND
(APM_AlertsAndReportsData.ComponentName = 'Memory Heap Used (B)') AND
(APM_AlertsAndReportsData.StatisticData >= (SELECT SomeValue FROM SomeTable))
)
答案 2 :(得分:2)
这是一个简单的:
单值子查询
select * from Table1
where id = (select id from Table2 where Name = 'cool')
多值子查询
select * from Table1
where id IN (select id from Table2 where Name LIKE 'A%')
select * from Table1
where id NOT IN (select id from Table2 where Name LIKE 'A%')
相关子查询
select * from Table1
where exists (select 1 from Table2 where Table1.id = Table2.id)