0

さて、私の質問を例を挙げて説明させてください

を含むテーブルがあります

Id
Name
Number

今の例

1 House 4
2 Hospital 3
3 Airport 'null'
4 Station 2

 select t1.id, 
       t1.name,
       t2.name as name2
from your_table t1
left join your_table t2 on t1.number = t2.id

上記のようにクエリを実行すると、列を含む「null」値でエラーが発生します。したがって、name2をnullとして返し、その行でエラーが発生しないように、上記のクエリを変更したいと思います。

したがって、私が期待する結果は次のようになります。

1 House Station
2 Hospital Airport
3 Airport null
4 Station Hospital

ここでのこのnullは文字列です。

私が得る現在のエラー

メッセージ245、レベル16、状態1、5行
目varchar値'null'をデータ型smallintに変換すると、変換に失敗しました。

ありがとうございました

4

1 に答える 1

3

データベースの設計を修正する必要があります。それまでの間、 NULLIFを使用して期待される結果を取得します。

select t1.id, 
       t1.name,
       t2.name as name2
from your_table t1
left join your_table t2 on NULLIF( t1.number, 'NULL' ) = t2.id
于 2012-10-07T19:12:41.447 に答える