这条语句前两个字段得到的全是相同的数字:
select top 100 @@idle as aaa, rand() as bbb, newid() as ccc from syscolumns1. 我想要的是像ccc字段一样每行都不同(数字形式),因为guid不直观,也太长了
2. 不用 identity(1,1) 流水号如:
insert into myTable(ID)
select top 100 rand() from syscolumns
select top 100 @@idle as aaa, rand() as bbb, newid() as ccc from syscolumns1. 我想要的是像ccc字段一样每行都不同(数字形式),因为guid不直观,也太长了
2. 不用 identity(1,1) 流水号如:
insert into myTable(ID)
select top 100 rand() from syscolumns
select top 100 @@idle+rand(ascii(left(newid(),1))) from syscolumns
简写为:select top 100 @@idle+rand(ascii(newid())) from syscolumns等待更多的答案...
422685261.71450502 a
422685261.71485901 b
422685261.71454227
422685261.71485901 b
422685261.71452361
422685261.71487767
422685261.71450502 a
select top 100 right(rand(ascii(right(newid(),1))),3) from syscolumns
----或
SELECT CAST(LEFT(NEWID(),6) AS VARBINARY) AS CCC FROM SYSCOLUMNSCCC
----------
41DD25
C3D8D9
C81623
9D33C1
BEE8E8
19A282CCC
--------------------------------------------------------------
0x443536463638
0x363046313045
0x454531394546
0x333738324631
0x393344334639
0x394644374144
0x313832313137
即, select top 100 rand(ascii(right(newid(),1))) from syscolumns一样的,也有重复:
0.7148776682297393
0.71448637583331709 a
0.71457954068960816 b
0.7145609077183499
0.7148404022872229
0.71448637583331709 a
0.71457954068960816 b
0.71485903525848116
0.7148404022872229
与下面这条不是一样的么?
select top 100 right(newid(),10) from syscolumns
用while 语句生成100个
declare @tmp table (f1 float)
declare @i int
set @i=1
while (@i<=100)
begin
insert into @tmp (f1) values (rand())
set @i=@i+1
end
select * from @tmp
用其他的,并不能保证唯一