首页 > 解决方案 > 如何在 T-SQL 中生成浅色随机颜色

问题描述

我已经在 T-SQL 2012 中运行了存储过程,并被归档以生成随机的十六进制颜色,除了生成的十六进制代码是深蓝色、深绿色等深色组合之外,所有工作正常。我需要生成浅色方案,怎么能我这样做。

SELECT
RecordId,
CONVERT(VARCHAR(max), CRYPT_GEN_RANDOM(3), 2)as [BarColour]

标签: tsql

解决方案


您使用的方法将产生浅色和深色。如果你只得到深色,那只是运气不好。

只生成浅色的起点是做这样的事情。它随机生成 RGB 值并将它们连接到您的十六进制代码中。

SELECT CONCAT(RIGHT(CONVERT(VARCHAR(100),CAST((ABS(CHECKSUM(NEWID()) % 135) + 120) AS VARBINARY),2),2),RIGHT(CONVERT(VARCHAR(100),CAST((ABS(CHECKSUM(NEWID()) % 135) + 120) AS VARBINARY),2),2),RIGHT(CONVERT(VARCHAR(100),CAST((ABS(CHECKSUM(NEWID()) % 135) + 120) AS VARBINARY),2),2))

我反复运行它,一次输出 10 个结果,然后我得到了一系列浅灰色和粉彩。这种方法不会给你任何纯色,因为它完全避免了低范围值。


推荐阅读