データベース パソコン(ソフト)

【Access】SQLで文字列(数値)にNULLを足すとNULLになる回避方法

特定レコードだけNULLになってしまう現象

SQL NULLになる

簡単なSQLで住所と言うデータ

delivery_pref + delivery_city + delivery_address1 + ' ' + delivery_address2というフィールドで、

ココに注意

出力がNULLになってしまう現象

がでました。

全部がNULLになるとかなら何かのエラーかと判断しますが、ある特定のデータだけなのです。

 

NULLになってしまう原因

delivery_pref + delivery_city + delivery_address1 + ' ' + delivery_address2

どうも、フィールドを足して加工しているデータにおいて

1つのフィールドに、NULLがあると、その結果はNULLになることがわかりました。

つまり、

ココがポイント

フィールド内容 + NULL(あるフィールド) = NULL

 

NULLがあっても足して出力結果を出す方法

数値の場合は、NULLだったら「0」を加算するようにします。

ISNULL(フィールドA,0) + ISNULL(フィールドB,0) + ISNULL(フィールドC,0) = NULLにならない!

 

文字列の場合は、

ISNULL(フィールドA,””) + ISNULL(フィールドB,””) + ISNULL(フィールドC,””) = NULLにならない!

 

今回の自分のケースでは、下記のようにSQLをしてフィールドを結合させた住所の部分でNULLにしないようにしました。

 

SELECT DISTINCT 
                 dbo.amazon_shipped.arrange_date AS 投入番号, dbo.amazon_shipped.order_id AS 受注番号, 
                 dbo.[order].delivery_pref + dbo.[order].delivery_city + dbo.[order].delivery_address1 + ' ' + ISNULL(dbo.[order].delivery_address2, '') AS 住所
FROM             dbo.amazon_shipped INNER JOIN
                 dbo.[order] ON dbo.amazon_shipped.order_id = dbo.[order].id

 

NULLになる可能性があるフィールドを加えて表示させようとするときは、ちょっと注意が必要ですね。

 

 

-データベース, パソコン(ソフト)
-, , , , , , ,

Translate »

© 2024 PCTips