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
これは正しく機能します。
単一クエリの方法はありますか?ありがとうございました。
(これは、単一の列と数値を使用した単なる例です。実際には、より大きなテーブルと日時の列ですが、原則は同じである必要があります。)