日期:2014-05-18 浏览次数:20559 次
create table A(id varchar(10))
insert into A values('1')
insert into A values('2')
insert into A values('3')
create table B(id varchar(10))
insert into B values('a')
insert into B values('b')
insert into B values('c')
go
select a.id + ',' + b.id 'col' from a cross join b order by col
drop table A,B
/*
col
---------------------
1,a
1,b
1,c
2,a
2,b
2,c
3,a
3,b
3,c
(所影响的行数为 9 行)
*/
------解决方案--------------------
--如果A的ID为INT型,转化一下.
create table A(id int)
insert into A values(1)
insert into A values(2)
insert into A values(3)
create table B(id varchar(10))
insert into B values('a')
insert into B values('b')
insert into B values('c')
go
select cast(a.id as varchar) + ',' + b.id 'col' from a cross join b order by col
drop table A,B
/*
col
---------------------
1,a
1,b
1,c
2,a
2,b
2,c
3,a
3,b
3,c
(所影响的行数为 9 行)
*/
------解决方案--------------------
cross join
没错 同意
------解决方案--------------------
想得到的结果是:
tableA “乘以” tableB
即笛卡积,是Codd对于关系数据库给出的8个关系操作之一。
SQL实现:cross join
select * from tableA cross join tableB
------解决方案--------------------
select A.id,B.ID from Table A full join TableB B on 1=1