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

前端之家收集整理的这篇文章主要介绍了sql-server – 从列表中返回随机值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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

猜你在找的MsSQL相关文章