1

こんにちは、このコマンドを使用して、テーブルをもう少しレコードがある別のテーブルと左結合しますが、NULL を出力し続けます。そのNULLを0にしたい。

SELECT * FROM TABLE1

Left JOIN Table2 ON TABLE1.ID=Table2.IDRel

UPDATE Table2 SET IDRel = 0 where IDRel = NULL
4

4 に答える 4

4

更新は必要ありません。あなたが言ったように、Table2has a little more recordsはここで重要なことです。つまり、一致するIDRel値が見つからなかった Table1 の行については、列 ( IDRel​​) が残りNULLます。

ISNULL(IDRel, 0)たとえば、 null 値を 0 に置き換えるために使用できますが、INNER JOIN代わりに を使用しLEFT JOINて、一致しなかったすべての行を破棄して正しい結果を得ることができます...

ただし...実際にその列を更新する場合、更新クエリを次のように変更することを意味するNULL(そうではISない)に対して正しい比較を行った場合にのみ機能します。=

UPDATE Table2 SET IDRel = 0 where IDRel IS NULL

于 2014-06-26T13:00:32.767 に答える
0

このクエリを使用

 UPDATE Table2 SET IDRel = 0 where IDRel is NULL
于 2014-06-26T13:01:15.367 に答える
0

使用するIS NUll

SELECT * FROM TABLE1

Left JOIN Table2 ON TABLE1.ID=Table2.IDRel

UPDATE Table2 SET IDRel = 0 where IDRel IS  NULL
于 2014-06-26T13:01:39.223 に答える