怎么把两列合并成一列,相同的字段,不用合并

iiiiiiiii_z 2018-11-01 11:35:46
通过全连接,查询出来的结果集,怎么把第一列和第二列合并一起,相同的字段不用合并。
...全文
241 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2018-11-01
  • 打赏
  • 举报
回复
引用 4 楼 u011002950 的回复:
非常感谢,你打了这么多,我下次注意一下,语句复制出来。
不客气, 没事就结贴吧。
iiiiiiiii_z 2018-11-01
  • 打赏
  • 举报
回复
引用 1 楼 yenange 的回复:
你这个其实只有三种情况:
1. 两列 areaid 相同;
2. 两列 areaid 均为null;
3. 两列 areaid 有一列为 null;

mysql 用 ifnull 就可以了吧:
SELECT ifnull(m.areaid,n.areaid) AS `areaid`
,m.a2
,n.a3
FROM (
SELECT c.areaid AS areaidrb.zzdzje AS a2
FROM dsass_zwb_fjkffwxq a
LEFT JOIN dsassfjfjpsdjb b
ON a.ida_psdj = b.id
LEFT JOIN dsassfjfjfwhfb c
ON a.ida_hfb = c.id
WHERE a.chaptertype = '1'
)m
FULL JOIN (
SELECT c.areaid AS areaidrb.zzdzje AS a3 |
FROM dsass_zwb_fjkffwxq a
LEFT JOIN dsassfjfjpsdjb b
ON a.id_psdj = b.id
LEFT JOIN dsassfjfjfwhfb c
ON a.id_hfb = c.id
WHERE a.chaptertype = '2'
)n
ON m.areaid = n.areaid


sqlserver:
SELECT COALESCE(m.areaid,n.areaid) AS [areaid]
,m.a2
,n.a3
FROM (
SELECT c.areaid AS areaidrb.zzdzje AS a2
FROM dsass_zwb_fjkffwxq a
LEFT JOIN dsassfjfjpsdjb b
ON a.ida_psdj = b.id
LEFT JOIN dsassfjfjfwhfb c
ON a.ida_hfb = c.id
WHERE a.chaptertype = '1'
)m
FULL JOIN (
SELECT c.areaid AS areaidrb.zzdzje AS a3 |
FROM dsass_zwb_fjkffwxq a
LEFT JOIN dsassfjfjpsdjb b
ON a.id_psdj = b.id
LEFT JOIN dsassfjfjfwhfb c
ON a.id_hfb = c.id
WHERE a.chaptertype = '2'
)n
ON m.areaid = n.areaid

非常感谢,你打了这么多,我下次注意一下,语句复制出来。
二月十六 2018-11-01
  • 打赏
  • 举报
回复
 SELECT COALESCE(m.arreaid,n.areaid) AS areaid,m.a2,n.a3.......
qq_41911785 2018-11-01
  • 打赏
  • 举报
回复
楼上的,SQL server 用isnull()就行了
吉普赛的歌 2018-11-01
  • 打赏
  • 举报
回复
你这个其实只有三种情况: 1. 两列 areaid 相同; 2. 两列 areaid 均为null; 3. 两列 areaid 有一列为 null; mysql 用 ifnull 就可以了吧:
SELECT ifnull(m.areaid,n.areaid) AS `areaid`
      ,m.a2
      ,n.a3
FROM   (
           SELECT c.areaid AS areaidrb.zzdzje AS a2
           FROM   dsass_zwb_fjkffwxq a
                  LEFT JOIN dsassfjfjpsdjb b
                       ON  a.ida_psdj = b.id
                  LEFT JOIN dsassfjfjfwhfb c
                       ON  a.ida_hfb = c.id
           WHERE  a.chaptertype = '1'
       )m
       FULL JOIN (
                SELECT c.areaid AS areaidrb.zzdzje AS a3 |
                FROM   dsass_zwb_fjkffwxq a
                       LEFT JOIN dsassfjfjpsdjb b
                            ON  a.id_psdj = b.id
                       LEFT JOIN dsassfjfjfwhfb c
                            ON  a.id_hfb = c.id
                WHERE  a.chaptertype = '2'
            )n
            ON  m.areaid = n.areaid
sqlserver:
SELECT COALESCE(m.areaid,n.areaid) AS [areaid]
      ,m.a2
      ,n.a3
FROM   (
           SELECT c.areaid AS areaidrb.zzdzje AS a2
           FROM   dsass_zwb_fjkffwxq a
                  LEFT JOIN dsassfjfjpsdjb b
                       ON  a.ida_psdj = b.id
                  LEFT JOIN dsassfjfjfwhfb c
                       ON  a.ida_hfb = c.id
           WHERE  a.chaptertype = '1'
       )m
       FULL JOIN (
                SELECT c.areaid AS areaidrb.zzdzje AS a3 |
                FROM   dsass_zwb_fjkffwxq a
                       LEFT JOIN dsassfjfjpsdjb b
                            ON  a.id_psdj = b.id
                       LEFT JOIN dsassfjfjfwhfb c
                            ON  a.id_hfb = c.id
                WHERE  a.chaptertype = '2'
            )n
            ON  m.areaid = n.areaid

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧