哎呀
好久没来这里啦,分也散得差不多咯。555...今天来提个问题!~有1----10十个数(每次随机抽5个按序排列)表ta里已有选取的记录:tid aa bb cc dd ee
1 1 3 7 8 9 第一抽取次13789
2 4 6 7 8 10 第二抽取次46789
3 3 5 7 8 9 第三抽取次35789问:如何列出还那些没有出现过的组合啊?
(肯定有很多,如12345,23456等)
好久没来这里啦,分也散得差不多咯。555...今天来提个问题!~有1----10十个数(每次随机抽5个按序排列)表ta里已有选取的记录:tid aa bb cc dd ee
1 1 3 7 8 9 第一抽取次13789
2 4 6 7 8 10 第二抽取次46789
3 3 5 7 8 9 第三抽取次35789问:如何列出还那些没有出现过的组合啊?
(肯定有很多,如12345,23456等)
解决方案 »
- 截取字符串
- 有没有一个函数可以指定年、月、日转变为日期的
- 如何使用exec后查询字符串中的变量???或使用其它方法
- 利用SQL语句可不可以读取到域中的用户信息?
- 老大来看看啊~存储过程寻求更好的办法。。我也不知道如何实现!
- 想了半天不懂得怎么写,上网求助。求一SELECT语句
- 在系统表SYSCOLUMNS中怎样获得某个字段的默认值是多少??如何确定某个字段是否主键
- Sql server 2000的sysprocesses在2005怎么没有了?
- 如何在sqlserver中同一个字段存储日期和时间?
- 关于本地ACCESS数据库中的表导入到远程SQL中
- 大家帮忙看看!!急啊!!!
- sql时间相加问题.速度
好久没来这里啦,分也散得差不多咯。555...今天来提个问题!~有1----10十个数(每次随机抽5个按序排列)表ta里已有选取的记录:tid aa bb cc dd ee
1 1 3 7 8 9 第一次抽取13789
2 4 6 7 8 10 第二次抽取46789
3 3 5 7 8 9 第三次抽取35789问:如何列出还那些没有出现过的组合啊?
(肯定有很多,如12345,23456等)
insert into @t1 select 1,1,3,7,8,9
insert into @t1 select 2,4,6,7,8,10
insert into @t1 select 3,3,5,7,8,9 declare @t2 table(id int)
insert into @t2
select 1 union select 2 union select 3 union select 4
union select 5 union select 6 union select 7 union select 8
union select 9 union select 10select
n.*
from
(select
a.id aa,b.id bb,c.id cc,d.id dd,e.id ee
from
@t2 a,@t2 b,@t2 c,@t2 d,@t2 e
where
a.id<b.id and b.id<c.id and c.id<d.id and d.id<e.id) n
where
not exists(select 1 from @t1 where aa=n.aa and bb=n.bb and cc=n.cc and dd=n.dd and ee=n.ee)
drop table tb
gocreate table tb
(
tid int,
aa int,
bb int,
cc int,
dd int,
ee int
)insert into tb(tid,aa,bb,cc,dd,ee) values(1, 1, 3, 7, 8, 9)
insert into tb(tid,aa,bb,cc,dd,ee) values(2, 4, 6, 7, 8, 10 )
insert into tb(tid,aa,bb,cc,dd,ee) values(3, 3, 5, 7, 8, 9)create table test
(
a int,
b int,
c int,
d int,
e int
)declare @a as int
declare @b as int
declare @c as int
declare @d as int
declare @e as int
set @a = 1
set @b = 1
set @c = 1
set @d = 1
set @e = 1WHILE @a <= 10
begin
set @b = 1
while @b <= 10
begin
set @c = 1
while @c <= 10
begin
set @d = 1
while @d <= 10
begin
set @e = 1
while @e <= 10
begin
insert into test(a,b,c,d,e) values(@a,@b,@c,@d,@e)
set @e = @e + 1
end
set @d = @d + 1
end
set @c = @c + 1
end
set @b = @b + 1
end
set @a = @a + 1
endselect * from test where cast(a as varchar) + cast(b as varchar) + cast(c as varchar) + cast(d as varchar) + cast(e as varchar) not in
(select cast(aa as varchar) + cast(bb as varchar) + cast(cc as varchar) + cast(dd as varchar) + cast(ee as varchar) from tb)
drop table tb,test
----------- ----------- ----------- ----------- -----------
1 1 1 1 1
1 1 1 1 2
1 1 1 1 3
1 1 1 1 4
1 1 1 1 5
1 1 1 1 6
1 1 1 1 7
1 1 1 1 8
1 1 1 1 9
1 1 1 1 10
1 1 1 2 1
1 1 1 2 2
1 1 1 2 3
1 1 1 2 4
1 1 1 2 5
1 1 1 2 6
1 1 1 2 7
1 1 1 2 8
1 1 1 2 9
1 1 1 2 10..........................
(所影响的行数为 99997 行)
WHILE @a <= 6
begin
set @b = @a+1
while @b <= 7
begin
set @c = @b+1
while @c <=8
begin
set @d = @c+1
while @d <= 9
begin
set @e = @d+1
while @e <= 10
begin
insert into test(a,b,c,d,e) values(@a,@b,@c,@d,@e)
set @e = @e + 1
end
set @d = @d + 1
end
set @c = @c + 1
end
set @b = @b + 1
end
set @a = @a + 1
end