2017-04-10 6 views
1

personという名前のテーブル名が1つあります。SQLテーブルに値が見つからない場合、行の値を設定する方法は「いいえ」ですか?

例えば:

Name  Address 
------------------------------------- 
    a   India 
    b   US 
    c   UK 

私は特定の名前が存在しないかであるかどうかを確認したいと思います。存在しない場合は「いいえ」と表示したい。

例えば:

私は結果を得るために、クエリの下にしようとしました。しかし、 'D'はテーブルには見つかりません。だから、私は値を空にしています。

select Name, case when Name in ('a','d','e') Then 'Yes' Else 'No' END As Status from person 


    Name  Status 
------------------------------ 
     a   Yes 

は、私のような形式で、以下のような出力が必要になります。

Name  Status 
------------------------------------- 
    a   Yes 
    b   Yes 
    c   Yes 
    d   No 
    e   No 

は、あなたが私を助けてください。どのようにこのタスクを解決するには?

+0

こんにちは.. ..誰か助けてください、またはこれを解決する方法を提案してください。 – Dhamo

+0

以下のコードを使用してみてください。 –

答えて

1

コードの下を利用してください:

DECLARE @Table TABLE (Name NVARCHAR(20), Country NVARCHAR(20)) 
    INSERT INTO @Table VALUES 
    ('a','India'), 
    ('b','US'), 
    ('c','UK') 

は、あなたがチェックする必要がある名前のフィールドを格納するテーブル変数を作成します。

DECLARE @Temp TABLE (Name NVARCHAR(20)) 
    INSERT INTO @Temp VALUES 
    ('a'), 
    ('d'), 
    ('e') 

    SELECT 
    CASE WHEN T.Name IS NULL THEN TE.Name ELSE T.Name END AS Name, 
    CASE WHEN T.Name IS NULL THEN 'NO' ELSE 'YES' END AS Staus 
    FROM @Table T FULL JOIN @Temp TE 
    ON T.Name =TE.Name 

OUTPUT:

Name Staus 
    a YES 
    b YES 
    c YES 
    d NO 
    e NO 
+0

ありがとうございました。それは正常に動作しています。あなたの迅速なサポートに感謝します。 – Dhamo

+0

@Dhamoあなたがあなたの問題を解決するのに役立つ場合は、私の答えを投票してください:) –

+0

しかし、カントリーヌルではないことが期待どおりに機能していないことを意味します。 – Dhamo

関連する問題