哪一个可以工作CTE,案例陈述,合并

时间:2015-03-11 16:43:35

标签: sql

我试图以某种方式将这些选择状态的结果合并为一个 我在存储过程table1,table2

中有两个临时表

有人可以帮我把输出设置看起来像这样, Table1是基表。考虑Table1中的第一行,Id = 1001。 如果表2中存在此Id = 1001,则id = 1001的最终输出应具有Isselected = true并从表2中获取值 如果它不存在则按原样保留。

我脑子里有些东西,却无法让它发挥作用。使用CTE,Case,coalesce ??

Table1
id    Name   isselected userdefine1 userdefine2
1001  name1   0   
1002  name2   0   
1003  name3   0   

Table2
id     userdefine1  userdefine2
1001    helloworld   helloworld2

Final Output
id    Name   isselected  userdefine1   userdefine2
1001  name1   1           helloworld  helloworld2
1002  name2   0   
1003  name3   0  

1 个答案:

答案 0 :(得分:0)

只需LEFT JOIN CASE语句围绕isselected发表{/ 1}}声明:

SELECT tbl1.Id,
tbl1.Name,
CASE WHEN tbl2.Id IS NULL THEN 0 ELSE 1 END as isselected,
tbl2.userdefine1,
tbl2.userdefine2
FROM tbl1
LEFT JOIN tbl2 ON tbl1.Id = tbl2.Id