我正在使用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)