簡體   English   中英

如果在兩個不同的表中沒有匹配項,則SQL查詢返回列的默認值

[英]SQL query to return default value for a column if no Match in two different tables

我需要創建一個匹配兩個表的輸出表。 如果第二個表與第一個表不匹配,則返回列的默認值。

例-

表格1 -

|---------------------|------------------|
|          Id         |        Name      |
|---------------------|------------------|
|          1          |        Jon       |
|---------------------|------------------|
|          2          |        Dan       |
|---------------------|------------------|
|          3          |        Mark      |
|---------------------|------------------|
|          4          |      Phillips    |
|---------------------|------------------|
|          5          |       Watson     |
|---------------------|------------------|

表2-

|---------------------|------------------|
|          Name       |      Result      |
|---------------------|------------------|
|          Jon        |       Pass       |
|---------------------|------------------|
|        Phillips     |       Pass       |
|---------------------|------------------|
|         Watson      |       Fail       |
|---------------------|------------------|

帶有連接的最終輸出表,如果第二個表中的數據不匹配,則為其分配默認值“失敗”-

|---------------------|------------------|------------------|
|          Id         |        Name      |      Result      |
|---------------------|------------------|------------------|
|          1          |        Jon       |       Pass       |
|---------------------|------------------|------------------|
|          2          |        Dan       |       Fail       |
|---------------------|------------------|------------------|
|          3          |        Mark      |       Fail       |
|---------------------|------------------|------------------|
|          4          |      Phillips    |       Pass       |
|---------------------|------------------|------------------|
|          5          |       Watson     |       Fail       |
|---------------------|------------------|------------------|

如何在SQL中實現。

左連接table1和table2並使用coalesce用默認值替換NULL值(當右表不匹配時):

select t1.id, 
       t1.name, 
       coalesce(t2.result, 'fail') as Result      
from Table_1 as t1
left outer join Table_2 as t2 on t1.name = t2.name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM