0

常に少なくとも 1 つのレコードを返す select ステートメントが必要です。このようなもの

SELECT id, date FROM mytable WHERE id = <INPUT_ID> AND date = <INPUT_DATE>
UNION ALL
SELECT VALUE_FROM_FILTER(id), VALUE_FROM_FILTER(date) WHERE NOT EXISTS (SELECT * FROM mytable WHERE id = <INPUT_ID> AND date = <INPUT_DATE>)

そのため、クエリが 0 行を返す場合でも、入力値を含む少なくとも 1 つの行が返されます。これはSQLで可能ですか?

私はOracle 10.2を使用しています

<INPUT_ID>不明な値の<INPUT_DATE>単なる置き換えです

(回答とコメントに基づいて、より明白になるように質問を修正しました)

4

2 に答える 2

0

最初のクエリが結果を返さないという事実に基づいて、「デフォルト」行を予測できます。

SELECT id, date FROM mytable WHERE id = @INPUT_ID AND date = @INPUT_DATE
UNION
SELECT @INPUT_ID AS id, @INPUT_DATE AS date FROM DUAL
WHERE NOT EXISTS (SELECT * FROM mytable WHERE id = @INPUT_ID AND date = @INPUT_DATE)
于 2013-04-24T13:53:12.923 に答える