DB2 SQL * basic * SELECT语句有两个条件

时间:2012-09-11 18:22:04

标签: sql select db2

我正在尝试生成一个报告,该报告显示满足以下两个条件之一的表中的记录:

1)“D”='ERR'并且记录不到一周。

- 或 -

2)“D”='X'或'Y'且记录超过一小时。

我已经开始使用需求#1,但我不知道如何在应用了正确逻辑的同一查询中执行这两个需求。要在报告上显示记录,可以应用这两个条件中的任何一个,条件#2实际上也需要有一个OR运算符。

我可能会将此报告更改为过去X小时(1/2/4/8),但我相信此网站上的其他帖子可以解决该问题。

   SELECT "A", "B", "C"
     FROM Schema."Table" 
    WHERE "D"='ERR' AND TimeStamp >= (CURRENT_TIMESTAMP - 7 DAYS)
 ORDER BY TimeStamp DESC

2 个答案:

答案 0 :(得分:4)

如果您使用(),您可以将条件组合在一起以获得所需的输出:

 SELECT "A", "B", "C"
       FROM Schema."Table" 
       WHERE ("D"='ERR' AND TimeStamp >= (CURRENT_TIMESTAMP - 7 DAYS)) OR
    (("D" = 'X' or "Y" = 'Y') and TimeStamp > (CURRENT_TIMESTAMP - 1 HOURS))
       ORDER BY TimeStamp DESC

答案 1 :(得分:1)

使用括号将条件与OR分开。

SELECT "A", "B", "C"
FROM Schema."Table" 
WHERE ("D"='ERR' AND TimeStamp >= (CURRENT_TIMESTAMP - 7 DAYS))
      OR
      (("D" = 'X' or "Y" = 'Y') AND (TimeStamp) > (CURRENT_TIMESTAMP - 1 HOURS))
ORDER BY TimeStamp DESC