1

1、2、3、10、11 ... のような整数値を持つテーブルに COL 列があります。テーブル内の一意性は ID によって作成されます。各 ID は、複数の COL 値に関連付けることができます。例えば

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

有効です。

私がやりたいのは、テーブルから 3 より大きい COL 値のみを選択し、AND (問題のある部分) が存在する場合は、1、2、および 3 の MAX である値も選択することです。したがって、上記の表では、値 [3, 10] を選択します。10 は 3 よりも大きく、3 = MAX(3, 2) であるためです。

2 つの SQL ステートメントでこれを実行できることはわかっていますが、ちょっと面倒です。1つのステートメントだけでそれを行う方法はありますか?

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 に答える