PostgreSQLに1つの数値列を持つテーブルがあり、指定された数値がありx
ます。
がテーブルにある場合x
は、すべての番号が必要です>= x
。
x
が表にない場合は、すべての番号> x
と最大の番号が必要< x
です。
例:
id
5
10
15
20
それx = 15
は戻ってくるはず15
です20
。
、、x = 12
を返す必要10
が15
あり20
ます。
私は以下を試しました:
SELECT id FROM table_name WHERE id > 12
UNION
SELECT MAX(id) FROM table_name WHERE id <= 12
これは正しく機能します。
単一クエリの方法はありますか?ありがとうございました。
(これは、単一の列と数値を使用した単なる例です。実際には、より大きなテーブルと日時の列ですが、原則は同じである必要があります。)