2012-04-15 2 views
-3

ディアーズ選択:SQLの条件の下で、私は、SQLのSELECT文を書いています

SELECT 
    CourtCode, 
CourtName+ ' '+ CourtType AS Court 
from table 
をCourtTypeはNULL int型の列

時に列CourtType=nullは私の選択リターン '裁判所'

+1

私はあなたが彼らがCASE文を望むように見えるすべての –

+1

で求めているかを理解することはできません、この質問はいくつかの深刻なrewordingを必要とします選択された値の1つですが、私は肯定的ではありませんが、質問をクリアする必要があります。 – Taryn

+0

選択Diw_Tb_Court.Fd_CourtCode、Diw_Tb_Court.Fd_CourtName + '' Diw_Tb_CourtType.Fd_CourtType AS法廷からテーブル1の内部結合テーブルなどへ.....この私のquereyでもDiw_Tb_CourtType.Fd_CourtType = Diw_Tb_CourtTypeのときはSQLでnull。 Fd_CourtType = nullクエリーコートの結果= nullいいえDiw_Tb_CourtType.Fd_CourtTypeがnullの場合は必要ありません.Diw_Tb_CourtType.Fd_CourtType == nullの場合、コンカチネーションを行います。concateの必要がない場合 –

答えて

1

ISNULL()またはCOALESCE()のための仕事のように思える:

SELECT 
    Diw_Tb_Court.Fd_CourtCode, 
    COALESCE(Diw_Tb_Court.Fd_CourtName + ' ', '') 
    + COALESCE(Diw_Tb_CourtType.Fd_CourtType, '') AS Court 
FROM … 
1

方法この私が欲しいですあなたのニーズを理解するのが難しい質問が書かれていますが、私が推測するならば、左外部結合とCASEステートメントが必要だと思います。左側の外部結合により、Diw_tb_CourtType表に一致する行がなくても、Diw_Tb_Court表の行が戻されます。 CASEステートメントを使用すると、Diw_Tb_courtType結合が起こったかどうかを調べることができます。そうであれば、その名前を「名前」列に追加します。

SELECT 
    c.Fd_CourtCode, 
    name = c.Fd_CourtName + 
     CASE WHEN ct.Fd_CourtType is not null THEN ' ' + ct.Fd_CourtType ELSE '' END 
FROM 
    Diw_Tb_Court c 
    left outer join Diw_Tb_CourtType ct on ct.id = c.courtType