一个SQL的select 语句的问题
问题是这样的,如果一个表table_1中有三个列,col_1,col_2,col_3
里面的数据如下:
col_1 col_2 col_3
1 4 张三
1 5 李四
2 3 全一
2 4 王二
2 5 周五
希望有办法,用一个或几个SQL语句,使我list出数据如下
col_1 col_2 col_3
1 1 NULL
1 2 NULL
1 3 NULL
1 4 张三
1 5 李四
1 6 NULL
1 7 NULL
1 8 NULL
2 1 NULL
2 2 NULL
2 3 全一
2 4 王二
2 5 周五
2 6 NULL
2 7 NULL
2 8 NULL
另外,,这个表里面的每组(按col_1分组)数据不一定,可能有8条,也可能有5条,也可能只有一条,,
需要list出来的数据,每组(按col_1分组)必须有8条记录,,按照col_2以升序排列,,
不知哪位高人有办法,,
------解决方案----------------------创建测试环境
create table #t(col_1 int,col_2 int,col_3 varchar(20))
--插入测试数据
insert #t(col_1,col_2,col_3)
select '1 ', '4 ', '张三 ' union all
select '1 ', '5 ', '李四 ' union all
select '2 ', '3 ', '全一 ' union all
select '2 ', '4 ', '王二 ' union all
select '2 ', '5 ', '周五 '
--求解过程
select top 8 identity(int,1,1) as id into #tmp from sysobjects a,sysobjects b
select distinct col_1,id
into #tmp2
from #t
cross join #tmp
select #tmp2.col_1,#tmp2