【发布时间】:2019-01-07 15:32:07
【问题描述】:
我有 2 个非常简单的表要加入,但我错过了某个地方,因为我没有得到想要的输出:
表 #1:
表 #2:
期望的输出:
查询:
create table #temp1
(
client_id int,
identifier int,
pp_id int,
ch_id int,
code varchar(20),
program varchar(20),
startdate date,
enddate date,
ssc varchar(50)
)
insert into #temp1
values (9908,789654123,1567,1566,'OP','xASMT','1/1/2019','1/4/2019','A201901044F010134NNN01D 151 143 093 ')
create table #temp2
(
client_id int,
identifier int,
pp_id int,
ch_id int,
code varchar(20),
program varchar(20),
startdate date,
enddate date,
ssc varchar(20)
)
insert into #temp2
values(9908,789654123,1574,1573,'OP','SU1','1/1/2019','1/4/2019',NULL)
--My query:
select
t1.client_id, t1.identifier,
concat(t1.code, t1.startdate, t1.enddate, t1.ssc),
concat(t2.code, t2.startdate, t2.enddate, t2.ssc)
from
#temp1 t1
left join
#temp2 t2 on t1.client_id = t2.client_id and t1.identifier = t2.identifier
我仍然是一个学习者,如果这里有任何错误,请原谅我。有什么帮助吗?!
【问题讨论】:
-
问题是什么,你得到了什么问题?
-
注意:如果任何值为 null 并且您构建了一个字符串,它将使整个字符串为 null
-
我的查询没有给我想要的输出。我需要 2 行记录
-
我只是连接日期和 SSC。如果有任何内容为 null,则将报告为 null
-
@rick UNION 使结果集垂直增长,JOIN 使它们水平增长。你已经明确表示你想要垂直增长;你为什么要求加入?
标签: sql sql-server join union