求一句SQL语句

eaqpi 2011-08-25 09:40:14
1、A表
序号 内容
1 A
2 B
3 C
5 E
7 G
9 I
10 J

B、表
序号 内容
1 A
4 D
5 E
6 F
7 G
8 H
9 I

希望求的C表
序号 A表 B表
1 A A
2 B
3 C
4 D
5 E E
6 F
7 G G
8 H
9 I I
10 J


SQL语句是否实现,谢谢!
...全文
69 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
eaqpi 2011-08-25
  • 打赏
  • 举报
回复
万分感谢,第一位兄弟速度快,代码短,就给分拉!
怪众生太美丽 2011-08-25
  • 打赏
  • 举报
回复

lxpbs8851 方法改成这样可行:
----------
select a.序号,ISNULL(b.内容,C.内容) as A表,(CASE WHEN B.内容=C.内容 THEN C.内容 END) B表
from
(select 序号 from TBA
union
select 序号 from TBB) a
left join TBA b on a.序号=b.序号
left join TBB c on a.序号=c.序号
---结果
/*
序号 A表 B表
----------- ---- ----
1 A A
2 B NULL
3 C NULL
4 D NULL
5 E E
6 F NULL
7 G G

(7 行受影响)
怪众生太美丽 2011-08-25
  • 打赏
  • 举报
回复

create table tba(序号 int,内容 varchar(4))
insert into tba(序号,内容)
select 1,'A' UNION SELECT 2,'B' UNION SELECT 3,'C' UNION SELECT 5,'E' UNION SELECT 7,'G'
CREATE TABLE TBB(序号 int,内容 varchar(4))
insert into TBB(序号,内容)
select 1,'A' UNION SELECT 4,'D' UNION SELECT 5,'E' UNION SELECT 6,'F' UNION SELECT 7,'G'
---
SELECT * FROM tba
SELECT * FROM TBB
-------查询,生成C表
;WITH
DD AS(
SELECT TA.序号,TB.内容
FROM (SELECT 序号 FROM tba UNION SELECT 序号 FROM TBB) TA LEFT JOIN TBA TB
ON TA.序号=TB.序号
)
SELECT A.序号,ISNULL(A.内容,B.内容) A表
,(CASE WHEN A.内容=B.内容 THEN B.内容 END) B表
FROM DD A LEFT JOIN TBB B
ON A.序号=B.序号
/*结果
序号 A表 B表
----------- ---- ----
1 A A
2 B NULL
3 C NULL
4 D NULL
5 E E
6 F NULL
7 G G

(7 行受影响)
chuanzhang5687 2011-08-25
  • 打赏
  • 举报
回复
select 序号=isnull(A.序号,B.序号),A.内容,B.内容
from A ,B where A.序号=B.序号
oO寒枫Oo 2011-08-25
  • 打赏
  • 举报
回复

select a.[[序号],b.[内容] as [A表内容],c.[内容] as [B表内容]
from
(select [序号] from tableA union select [序号] from tableB) a
left join tableA b on a.[序号]=b.[序号]
left join tableB c on a.[序号]=c.[序号]
快溜 2011-08-25
  • 打赏
  • 举报
回复
select 序号=isnull(A.序号,B.序号),A.内容,B.内容
from A full join B on A.序号=B.序号

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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