sql 全连后主键合并相同的id

时间:2021-11-12 13:40:02
如何能将这几个id 合并成 最多的一列

全联了 4个表出来这样的

sql 全连后主键合并相同的id

3 个解决方案

#1


认真看了一下还是没有明白你的意思。
看看这个学习下怎么提问 https://bbs.csdn.net/topics/391996442

#2


select def_id,def_id1,def_id2,def_id3,id
,(case when isnull(def_id,0)>0 then 1 else 0 end)
+(case when isnull(def_id1,0)>0 then 1 else 0 end) 
+(case when isnull(def_id2,0)>0 then 1 else 0 end) 
+(case when isnull(def_id3,0)>0 then 1 else 0 end) 
as 关联成功列数
from table1 a
left join table2 b on a.def_id=b.def_id1
left join table3 c on a.def_id=c.def_id2
left join table4 d on a.def_id=d.def_id3

#3


看你的数据,各个ID的值都是一样的,估计你是想返回第一个非NULL值,随便哪个列
可以用COALESCE函数,比如select COALESCE(def_id,def_id1,def_id2,def_id3,id) as id from table 这样

#1


认真看了一下还是没有明白你的意思。
看看这个学习下怎么提问 https://bbs.csdn.net/topics/391996442

#2


select def_id,def_id1,def_id2,def_id3,id
,(case when isnull(def_id,0)>0 then 1 else 0 end)
+(case when isnull(def_id1,0)>0 then 1 else 0 end) 
+(case when isnull(def_id2,0)>0 then 1 else 0 end) 
+(case when isnull(def_id3,0)>0 then 1 else 0 end) 
as 关联成功列数
from table1 a
left join table2 b on a.def_id=b.def_id1
left join table3 c on a.def_id=c.def_id2
left join table4 d on a.def_id=d.def_id3

#3


看你的数据,各个ID的值都是一样的,估计你是想返回第一个非NULL值,随便哪个列
可以用COALESCE函数,比如select COALESCE(def_id,def_id1,def_id2,def_id3,id) as id from table 这样