結果が得られない場合、T1 と T2 の 2 つの日付の間の要素を取得する SQL クエリを作成したいのですが、これらの日付の外で結果を取得したいと考えています。SQLのみを使用して行うにはどうすればよいですか
select * from myTable where tmp >= T1 and tmp <= T2
select * from myTable where tmp < T1 or tmp > T2
結果が得られない場合、T1 と T2 の 2 つの日付の間の要素を取得する SQL クエリを作成したいのですが、これらの日付の外で結果を取得したいと考えています。SQLのみを使用して行うにはどうすればよいですか
select * from myTable where tmp >= T1 and tmp <= T2
select * from myTable where tmp < T1 or tmp > T2
以下のクエリで問題を解決できます。
SELECT *
FROM myTable
WHERE
(tmp BETWEEN T1 AND T2)
OR
((tmp < T1 OR tmp > T2) AND (tmp NOT BETWEEN T1 AND T2))
次のようなクエリが機能するはずです。
(select * from myTable where tmp >= T1 and tmp <= T2)
UNION
(select * from myTable WHERE NOT EXISTS (select 1 from myTable where tmp >= T1 and tmp <= T2) AND tmp < T1 or tmp > T2)
これまでに提供された詳細を考慮すると、これはテストされていません。