加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 从列表中返回随机值

发布时间:2020-12-12 08:47:18 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用SQL Server 2014,并希望利用新功能CHOOSE和RAND.基本上想从列表中返回随机颜色. 就像是: Select CHOOSE(RAND(29),'bg-blue','bg-blue-madison','bg-blue-hoki','bg-blue-steel','bg-blue-chambray','bg-green-meadow','bg-green','bg-green-seagre
我正在使用SQL Server 2014,并希望利用新功能CHOOSE和RAND.基本上想从列表中返回随机颜色.

就像是:

Select CHOOSE(RAND(29),'bg-blue','bg-blue-madison','bg-blue-hoki','bg-blue-steel','bg-blue-chambray','bg-green-meadow','bg-green','bg-green-seagreen','bg-green-turquoise','bg-green-haze','bg-green-jungle','bg-red','bg-red-pink','bg-red-sunglo','bg-red-intense','bg-red-thunderbird','bg-red-flamingo','bg-yellow','bg-yellow-gold','bg-yellow-casablanca','bg-yellow-lemon','bg-purple','bg-purple-plum','bg-purple-studio','bg-purple-seance','bg-grey-cascade','bg-grey-silver','bg-grey-steel','bg-grey-gallery') AS Colour

可能吗?

解决方法

您必须使用RAND ROUND来获取1到29之间的整数:
DECLARE @num INT = ROUND(RAND()*28,0) + 1

SELECT CHOOSE(@num,'bg-grey-gallery') AS Test

为了更准确,您可以使用CEILING作为@GarethD在以下注释:

DECLARE @num INT = CEILING(RAND()*29)

工作SQL-FIDDLE

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读