対SQL Serverの私は、スクリプトを次のようしている。COALESCE:Oracleの
SELECT 1
FROM Table t
WHERE COALESCE(NULL, t.ID) = NULL;
t
は空です。クエリは、Oracleの場合は1
を返し、SQL Serverの場合は何も返しません。
SQL ServerのCOALESCE
の出力は何ですか?このコードを同じ方法で両方のDBに対して動作するように修正できますか?
対SQL Serverの私は、スクリプトを次のようしている。COALESCE:Oracleの
SELECT 1
FROM Table t
WHERE COALESCE(NULL, t.ID) = NULL;
t
は空です。クエリは、Oracleの場合は1
を返し、SQL Serverの場合は何も返しません。
SQL ServerのCOALESCE
の出力は何ですか?このコードを同じ方法で両方のDBに対して動作するように修正できますか?
最初の引数としてcolaesce
がここにある点は、NULL
です。問題は、COALESCE関数ではありません
SELECT 1
FROM Table t
where t.ID IS NULL;
: ちょうどこれを行います。 tテーブルが空の場合、SQL Serverは行を見つけて返しません。
表が空の場合、Oracleは「1」を戻すことはできません。 –
オラクルには当てはまりません。 't'が空であるかどうかにかかわらず、SQL(Oracle、SQL Server、および** all **他のSQLデータベース)を使用するANYデータベース製品では、クエリは返されません。何も**平等**なので、NULLにはならないからです。 – mathguy