2017-04-10 47 views
1

我有一個名爲person的表名。如果在SQL表中找不到值,如何設置行值爲'否'?

E.g:

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

我想檢查,如果特定名稱是存在與否。如果不存在,我想顯示爲「否」。

E.g:

我想下面的查詢得到的結果。但'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

相關問題