sqlserver取相同列下其余不同列的数据连接

今天在项目中遇到的这个问题,确实纠结我挺久的。其实这种需求如果用代码来实现的话只需要一个典然后就能实现,然而,有时候就偏偏让你写个sql,然后就去执行下就OK了,因此,问题就来了(标题挺乱的,也取得很不好)

其实这里的思想很简单,就是分列插入临时表,然后处理临时表,最终得到结果

语文能力很差,那就直接上代码:


/*******原需求:
--1 导出所有四级(省、市、区/县、镇/街道)、所属区号、工作时长、能否取货、能否派货、所属分部
--1.1 若“所属区号、上班时间、下班时间、是否有记录、所属分部”存在不同的值,则并列显示(逗号隔开)
********/
--第一步:取出所需字段,并去重
select distinct DR_250,DR_251,DR_252,DR_260,DR_234,DR_254,DR_273,DR_274,DR_208 
into #TMP from  TB_DriverDomainNew	

--第二步:取单个差异字段,并保存到临时表中
SELECT distinct DR_250,DR_251,DR_252,DR_260,DR_208 INTO #TMP1 FROM #TMP--选择有DR_208不相同的记录
SELECT distinct DR_250,DR_251,DR_252,DR_260,DR_234 INTO #TMP2 FROM #TMP--选择有DR_234不相同的记录
SELECT distinct DR_250,DR_251,DR_252,DR_260,DR_254 INTO #TMP3 FROM #TMP--选择有DR_254不相同的记录
SELECT distinct DR_250,DR_251,DR_252,DR_260,DR_273 INTO #TMP4 FROM #TMP--选
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值