指定されたテーブル:ヌル値を含む2つの列の値を追加するSQLクエリ?
ID ONE TWO X1 15 15 X2 10 - X3 - 20
このクエリ:少なくとも1つの列がNULL値を持っているので
SELECT (ONE + TWO) FROM (TABLE)
ちょうどX1
年代値ではなく、他人の合計を返します。ヌルがあってもどうやって追加できますか?つまり、おそらくnullを0と見なしますか?
指定されたテーブル:ヌル値を含む2つの列の値を追加するSQLクエリ?
ID ONE TWO X1 15 15 X2 10 - X3 - 20
このクエリ:少なくとも1つの列がNULL値を持っているので
SELECT (ONE + TWO) FROM (TABLE)
ちょうどX1
年代値ではなく、他人の合計を返します。ヌルがあってもどうやって追加できますか?つまり、おそらくnullを0と見なしますか?
COALESCE
は、パラメータにある最初のNULL以外の値を左から右に戻します。最初のフィールドがnullのときに、それはそのように0
がかかります、X2
は10 + 0 = 10
になりますが良い答えが既にあるが、私はそれが中(antonpugに言及する価値があると思いますこれが起こっている理由は、NULLが比較または合計できる値ではないということです。
NULLは0または ''(空文字列)ではないので、NULLを含むすべての操作はNULLを(10 + NULL = NULL)になります、でも(NULL = NULL)FALSE
に私は承知しています評価します。ありがとう! – antonpug
Oracleでは、空の文字列はNULLです。これは、標準および他のRDBMとは異なります。 Oracleでは ''null'がtrueを返すデュアルから' true 'を選択し、 '' = '''が行を返さないデュアルから' true'を選択します。このため、連結演算子 '||'は、両辺がnullの場合にのみnullを返します。 'select null || 'Hello World!' from dual'は文字列 "Hello World!"を返します。 –