-1

そのため、テーブル 1 に外部結合されたままになっているテーブル 2 からフィールド 1 を選択しようとしています。isnull() コマンドを使用して、フィールド 1 を null ではなく空白として返したいと考えています。しかし、それはまだnull値を返しています。これが私が持っているクエリです:

select 
  field1 
from 
  table1 
  left outer join (select
                    (isNull(field1,''))field1, 
                    id2 
                   from table2)tb2 on table1.id1= tb2.id2

問題がどこにあるか知っている人はいますか?

4

3 に答える 3

1

問題は、LEFTテーブルとしてを使用していることですtable1

から一致しないtable1が含まれている場合、からは何も返されないため、変換は行われません。id1id2table2table2

isNull選択の最初の部分でを使用する必要があります。

SELECT 
  isnull(field1,'') 
FROM table1 
  LEFT OUTER JOIN (
     SELECT field1, id2 FROM table2
  ) tb2 ON table1.id1= tb2.id2
于 2012-11-10T20:47:20.163 に答える
1

COALESCE()代わりに使用する必要がありますISNULL()

于 2012-11-10T20:33:48.063 に答える
1

派生クエリは必要ありません。通常の結合を行うだけです。

select coalesce(field1,'') as field1 
from   table1 
left outer join table2
on table1.id1= tb2.id2

またCOALESCE、元のクエリで を使用していた場合、それは機能しません。SELECTメインステートメントで必要になります。

于 2012-11-10T20:55:02.427 に答える