gpt4 book ai didi

sql-server - 从一组 T-SQL 中选择一个随机值

转载 作者:行者123 更新时间:2023-12-03 00:25:18 26 4
gpt4 key购买 nike

Possible Duplicate:
Simple update statement so that all rows are assigned a different value

有没有办法从子查询中选择随机值(例如颜色)?这是我尝试过的,但每次运行都获得相同的值:

SELECT TOP (100) ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS ID,--Sequential number from 1 to ..
(SELECT TOP 1 color
FROM ( VALUES (0, 'Red'),
(1, 'Green'),
(2, 'Yellow') ) colors(id, color)
ORDER BY NEWID() ) AS RandomColor
FROM sys.all_columns ac1
CROSS JOIN sys.all_columns ac2

但是如果我单独运行这一部分,我会得到不同的颜色:

SELECT TOP 1 color
FROM ( VALUES (0, 'Red'),
(1, 'Green'),
(2, 'Yellow') ) colors(id, color)
ORDER BY NEWID()

最佳答案

也许是这样的

select ac1.ID, r.color from
(SELECT TOP (100)
-- changed because it didn't work in mssql 2012
--ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) as ID,
ROW_NUMBER() OVER (ORDER BY newid()) as ID,
ROW_NUMBER() OVER (ORDER BY newid()) as dummy
FROM sys.all_columns
order by id
) ac1
cross apply
(SELECT top 1 color FROM ( VALUES (0,'Red'),(1,'Green'),(2,'Yellow') ) colors(id,color)
where id = dummy % 3
) r

关于sql-server - 从一组 T-SQL 中选择一个随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13907507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com