orther言語(C#、Sql Server)では、1 + nullまたは '1' + nullがNULLですが、Oracleの結果は次のとおりです。 null = 1であるが、 '1' + null = null。例:oracleの値がプラス
select 1 || null from dual ;
select '1' + null from dual;
結果:1、なぜ私に言うことができるヌル
?
orther言語(C#、Sql Server)では、1 + nullまたは '1' + nullがNULLですが、Oracleの結果は次のとおりです。 null = 1であるが、 '1' + null = null。例:oracleの値がプラス
select 1 || null from dual ;
select '1' + null from dual;
結果:1、なぜ私に言うことができるヌル
?
OracleはNULL
を、空文字列はthe same thingと扱います。
したがっては1 || ""
と同じです(これは'1'
です - これは論理ORではなくSQLの文字列連結です)。
+
の場合、両方の引数は数値に変換され、NULL
を含む算術演算の結果はNULL
になります。
しかし、なぜ:nullを選択した場合= ''次に1つのelse 0の終了から二重; 0ですか? nullで ""同じ場合は1になります。 –
@ NguoiTotbung - 同じ理由で、 'null = null'はfalseです:NULLは何も等しい** never ** **です。そのため、SQL言語にはis is null演算子があります(SQL Serverにもこれがあります)。 – APC
"しかし、Oracleの結果は:1 || null is null"いいえ – APC
ありがとうございます。私は編集されています –