导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

急----将两个不相关的表合并成一个表该怎么写?

xiaokun111 2003-12-21 05:29:41
第一个表:
ID A
1 张三
2 李四
3 王五

第二个表:

ID B
556 张三三
668 李四四
788 王五五

合并后的表:

A B
张三 张三三
李四 李四四
王五 王五五

...全文
12 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gmlxf 2003-12-21
--测试环境
declare @t1 table(A numeric(10,0))
declare @t2 table(B numeric(10,0))
--测试数据
insert @t1
select 454
union select 756
union select 345
union select 123

insert @t2
select 23
union select 45

--实现
select A,B
from @t1 a left join @t2 b
on
(select count(*) from @t1 where A<=a.A)
=
(select count(*) from @t2 where B<=b.B)
order by a.A

/*
A B
------------ ------------
123 23
345 45
454 NULL
756 NULL
*/
回复
j9988 2003-12-21
select identity(int,1,1) as id,A into #t1 from tableA

select identity(int,1,1) as id,B into #t2 from tableB

select A,B from #t1 C full join #t2 D on C.id=D.id
回复
xiaokun111 2003-12-21
帮帮忙!上一层的问题该怎么写?
回复
xiaokun111 2003-12-21
第一个表:
A
454
756
345
123

第二个表:

B
23
45


合并后的表:

A B
123 23
345 45
454
756

合并后的表是从小到大排序的表.
回复
gmlxf 2003-12-21
那么我写的A和B两个字段全为numeric类型该怎么写?(Thank!)
---
也是一样的,没有问题。
回复
xiaokun111 2003-12-21
那么我写的A和B两个字段全为numeric类型该怎么写?(Thank!)
回复
gmlxf 2003-12-21
楼上的,借用一下表结构,谢谢:

--测试环境
declare @table1 table(id int,A varchar(50))
declare @table2 table(id int,B varchar(50))
--测试数据
insert @table1 values(1,'张三')
insert @table1 values(2,'李四')
insert @table1 values(3,'王五')
insert @table2 values(556,'张三三')
insert @table2 values(668,'李四四')
insert @table2 values(788,'王五五')
--实现
select a.A,b.B
from @table1 a,@table2 b
where
(select count(*) from @table1 where id<=a.id)
=
(select count(*) from @table2 where id<=b.id)

回复
shuiniu 2003-12-21
--测试环境
declare @table1 table(id int,A char(4))
declare @table2 table(id int,B char(6))
--测试数据
insert @table1 values(1,'张三')
insert @table1 values(2,'李四')
insert @table1 values(3,'王五')
insert @table2 values(556,'张三三')
insert @table2 values(668,'李四四')
insert @table2 values(788,'王五五')
--实现
select a.A,b.B
from @table1 a join @table2 b
on charindex(a.A,b.B) > 0

/*
A B
---- ------
张三 张三三
李四 李四四
王五 王五五

(所影响的行数为 3 行)
*/
回复
shuiniu 2003-12-21
--try:
select a.A ,b.B from
第一个表 a join 第二个表 b
on CHARINDEX(a.A, b.B) > 0
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告