【求教 生成一定规律的数字表】 200feixianxxx]

发布时间:2016-12-10 21:00:14 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"【求教 生成一定规律的数字表】 200feixianxxx]",主要涉及到【求教 生成一定规律的数字表】 200feixianxxx]方面的内容,对于【求教 生成一定规律的数字表】 200feixianxxx]感兴趣的同学可以参考一下。

本帖最后由 feixianxxx 于 2010-07-21 21:48:39 编辑 问题: 我想生成这么一个表: create table tb (col1 int,col2 int,col3 int ) 这三个字段的规律是这样的: col1 col2 col3 三个字段  1.每个字段的数值范围是 1-9  2.对于每一行 三个字段在不可以出现重复值 举例:1 1 3 这样的不允许 3.行与行之间不可以相同  ,就是行要唯一 生成的样式就是如下: col1 col2 col3  1     2    3 4     2    3  .... 3     2    1 9     8    2 ..... 注意红色部分 这样的记录也允许  我算了下 一共有9*8*7=504行 这个我说的应该清楚了吧。。。。 我写了个很慢的死的代码,郁闷死,N分钟后 还是没算出来全部的。。。 --计算数值表 create table tmp (col1 int,col2 int,co3 int) go declare @n int ,@col1 int,@col2 int,@col3 int  set @n=0 while (@n<=504) begin select @col1=max(case when rn=1 then number end) ,@col2=max(case when rn=2 then number end) ,@col3=max(case when rn=3 then number end)  from ( select number,rn=row_number() over(order by getdate()) from ( select top 3 number  from  master..spt_values  where type='p' and number between 1 and 9 order by checksum(newid()) )k ) z select  @col1,@col2,@col3  if(not exists(select * from tmp where [email protected] and col2 = @col2 and co3 [email protected])) begin set @n = @n+1; insert tmp select @col1,@col2,@col3; end end  go select * from tmp  drop table tmp 

sssssssss

1111

2222222

不就从111到999, 然后把有重复的删掉。。。。

引用 4 楼 playwarcraft 的回复:不就从111到999, 然后把有重复的删掉。。。。 .......好像是哦......

select * from ( select left(rtrim(number),1) as col1, substring(rtrim(number),2,1) as col2,right(rtrim(number),1) as col3 from master..spt_values where type='p' and number between 123 and 987 ) X where convert(int,col1)*convert(int,col2)*convert(int,col3)>0 and col1<>col2 and col1<>col3 and col2<>col3

引用 4 楼 playwarcraft 的回复:不就从111到999, 然后把有重复的删掉。。。。 一语惊醒梦中人

拣个分

引用 6 楼 playwarcraft 的回复:SQL code select * from ( select left(rtrim(number),1) as col1, substring(rtrim(number),2,1) as col2,right(rtrim(number),1) as col3 from master..spt_values where type='p' and number between 123 and …… 沟沟 。。。 我难过了。。 居然陷入了漩涡。。 打击到我了。。。 我居然没想到

引用 6 楼 playwarcraft 的回复:SQL code select * from ( select left(rtrim(number),1) as col1, substring(rtrim(number),2,1) as col2,right(rtrim(number),1) as col3 from master..spt_values where type='p' and number between 123 and …… 为此  赔偿点可用分 当精神损失费吧  好么?沟哥~

我日,你应该加分到300,以示惩戒 当然我不黑心的,给我200即可,剩下的大家平分

[code=SQL] declare @test table(n int) insert @test select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all  select 9  SELECT A.N,B.N,C.N FROM @test A,@test B,@test C WHERE A.N<>B.N AND B.N<>C.N AND A.N<>C.N

[code=SQL] declare @test table(n int) insert @test select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all  select 9  SELECT A.N,B.N,C.N FROM @test A,@test B,@test C WHERE A.N<>B.N AND B.N<>C.N AND A.N<>C.N

引用 11 楼 playwarcraft 的回复:我日,你应该加分到300,以示惩戒 当然我不黑心的,给我200即可,剩下的大家平分 嘻嘻 结了结了

上一篇:[推荐] 【SQL Server2005页面存储5之--非聚集索引行在非叶级别存储】 200feixianxxx]
下一篇:数据库建立 40dearxu]

相关文章

相关评论