[英]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.