クエリに別の文字列を作成しようとしています。 LOCATION_ADDR_LINE_2を削除してテストしましたが、クエリは正常に動作します。 DISTINCTを選択しないと、LOCATION_ADDR_LINE_2の値がNULLであることがわかります。 NULLを指定しても、SELECT DISTINCTにこれらの値をどのように集めることができますか?SELECT DISTINCTは、望ましくないときにNULL値を省略しています。
SELECT DISTINCT(LOCATION_ADDR_LINE_1 + ', ' + LOCATION_ADDR_LINE_2 + ', ' + LOCATION_CITY + ', ' + LOCATION_WORK_STATE) AS Addresses
FROM OracleReport
WHERE (LOCATION_ADDR_LINE_1 LIKE '%1135 Auto%' OR LOCATION_ADDR_LINE_1 LIKE '%199 Easy%')
戻り値:
アドレス NULL
SELECT DISTINCT(LOCATION_ADDR_LINE_1 + ', ' + LOCATION_CITY + ', ' + LOCATION_WORK_STATE) AS Addresses
FROM [OperationReport].[dbo].[OracleReport]
WHERE (LOCATION_ADDR_LINE_1 LIKE '%1135 Auto%' OR LOCATION_ADDR_LINE_1 LIKE '%199 Easy%')
戻り値:
アドレス
1135オート...
189-199簡単...値がNULLのときにtext,,text,...
(空の文字列を)気にしないと仮定すると、
各値をcoalesce(フィールド、 '')にラップして、NULLを長さゼロの文字列に変更します。ただし、これが動作しないOracleの場合||の代わりに+を使って判断する合体はうまくいくはずですが。 – xQbert
Oracleの場合、NVL() –
これは、Oracleデータから構築されたSQLテーブルに対するSQLクエリです。長い話ですが、それはOracleに直接問い合せる必要のないより大きなマシンの一部です。 –