1

我在表中有一个列 COL,它具有整数值,例如:1、2、3、10、11 ......等等。表中的唯一性由 ID 创建。每个 ID 可以与多个 COL 值相关联。例如

 ID | COL
——————————
  1 |  2   
————+—————
  1 |  3   
————+—————
  1 | 10  
————+—————

已验证。

我想要做的是仅从表中选择大于 3 的 COL 值,并且(有问题的部分)还选择 1、2 和 3 的最大值(如果它们存在的话)。所以在上表中,我想选择值 [3, 10] 因为 10 大于 3 并且 3 = MAX(3, 2)。

我知道我可以用两个 SQL 语句来做到这一点,但它有点乱。有没有办法只用一个语句来做到这一点?

4

1 回答 1

2
SELECT col FROM table
WHERE
    col > 3
UNION
SELECT MAX(col) FROM table
WHERE
    col <= 3

此查询不假定您想要每个 id 的结果,因为您没有明确提及它。我认为您不需要 pl/sql,SQL 就足够了。

于 2013-11-01T21:58:03.133 回答