MINUSは、最初のテーブルから要素を選択し、Oracleの2番目のSELECTステートメントによって返される行を削除するSQLセット操作です。また、SQL Serverでは、EXCEPTを使用して同じことを実行できます。
プロジェクトをOracleからSQL Serverに移行しているときに、違いに気付きました。最初の結果セットにレコードがない場合、マイナスは2番目のSELECTステートメントの結果セットをもたらします。ただし、SQL Serverでは、EXCEPTは何も返しません。その場合、私は何ができますか?プロジェクトを移行していますが、SQL Serverでも同じマイナス機能を実行したいと考えています。
ご協力いただきありがとうございます
Oracle MINUSとSQL Server EXCEPTの間に違いはありません。
彼らは同じことをすることを意図しています。
これにより、最初のクエリのany結果セットが確認され、結果がある場合を除き、実行されます。そうでない場合は、2番目のクエリのみを実行します。
IF EXISTS (SELECT NULL
FROM ... <first query criteria>
WHERE ...)
BEGIN
SELECT ... <first query>
EXCEPT
SELECT ... <second query>
END
ELSE
SELECT ... <second query>