我正在使用SQL Server 2000.我想在每一行都不重复生成随机数。但是,我的代码无效。我尝试了很多次,但我无法解决重复问题。我的代码如下:我使用“case”处理重复的数字但不起作用。有人可以帮帮我吗?非常感谢!
<%= range_field_tag 'ranger', in: 1...10, step: 1 %>
答案 0 :(得分:0)
SELECT RandNumber -- you can set @ran_no with this value in your sql query.
FROM (
SELECT ABS(CAST(NEWID() AS BINARY(6)) %500) + 1 RandNumber --To set max limit number you can replace 500 with any number.
FROM sysobjects
) SAMPLE
GROUP BY
RandNumber
正如你所说,你想在seq_no中设置值,在你的查询中你已经将@ran_no设置为seq_no,所以你应该尝试如下。
SET @ran_no = (SELECT TOP 1 ABS(CAST(NEWID() AS BINARY(6)) %1000) + 1 FROM sysobjects)
在每一行生成随机数而不重复。尝试上面的东西。会帮助你。
答案 1 :(得分:0)
只需查看此link
即可 SELECT RAND(CAST(NEWID() AS VARBINARY))
FROM dbo.SysObjects
对于您的更新声明,请像这样使用。
update dbo.test
set seq_no = RAND(CAST(NEWID() AS VARBINARY)) --directly given this function here,
where basket_seq = @i and flag = 'left'
同样根据MSDN link,您也可以为Sqlserver2000使用随机函数。
http://blog.sqlauthority.com/2007/04/29/sql-server-random-number-generator-script-sql-query/