0
SELECT a.amount, CASE When d.name <> NULL Then d.name Else c.name End As 'name'
from a
JOIN b on a.id= b.id
LEFT JOIN c on a.tokenId = c.tokenId 
LEFT JOIN d on a.tokenId  = d.tokenId 

存在する場合はテーブル d から名前を選択しようとしています。存在しない場合は、テーブル c から選択します。name フィールドは NULL として返されますが、どちらのテーブルでも null ではないことがわかっています。

誰でもこれを解決するのを手伝ってもらえますか?

4

2 に答える 2

3

<>演算子を使用して と比較することはできませんnullis次の演算子を使用します。

SELECT a.amount, CASE When d.name is not null Then d.name Else c.name End As 'name'

coalesce次の関数を使用することもできます。

SELECT a.amount, coalesce(d.name, c.name) As 'name'
于 2013-06-05T21:48:15.243 に答える
1

COALESCE を使用します。

SELECT a.amount, COALESCE(d.name,c.name) "name"
from a
JOIN b on a.id= b.id
LEFT JOIN c on a.tokenId = c.tokenId 
LEFT JOIN d on a.tokenId  = d.tokenId 
于 2013-06-05T21:48:26.630 に答える