gpt4 book ai didi

sql - 生成 3 到 6 之间的随机 int 值

转载 作者:行者123 更新时间:2023-12-01 16:55:18 24 4
gpt4 key购买 nike

Microsoft SQL Server 是否可以生成从最小到最大的随机 int 值(3-9 示例,15-99 等)

我知道,我可以从0到Max生成,但是如何增加Min边框呢?

此查询生成从 1 到 6 的随机值。需要将其从 3 更改为 6。

SELECT table_name, 1.0 + floor(6 * RAND(convert(varbinary, newid()))) magic_number 
FROM information_schema.tables

5 秒后添加:

SELECT table_name, 3.0 + floor(4 * RAND(convert(varbinary, newid()))) magic_number 
FROM information_schema.tables

最佳答案

一个有用的编辑器在每个语句之前添加了“Select”,但此项的要点是它可以为返回中的每一行生成唯一的键,而不仅仅是一个项目(为此,我将使用 Rand() 函数) 。例如:从 tblExample 中选择前 100 个 Rand(),*

将为所有 100 行返回相同的随机值。

同时:从 tblexample 中选择前 100 个 ABS(CHECKSUM(NEWID()) % 10),*

将在返回的每一行上返回 0 到 9 之间的不同随机值。因此,虽然选择使复制和粘贴变得更容易,但如果需要的话,您可以将逻辑复制到选择语句中。

这会生成一个 0-9 之间的随机数

SELECT ABS(CHECKSUM(NEWID()) % 10)

1 到 6

SELECT ABS(CHECKSUM(NEWID()) % 6) + 1

3 到 6

SELECT ABS(CHECKSUM(NEWID()) % 4) + 3

动态(基于 Eilert Hjelmeseths 评论 - 感谢 jiraiya 提供视觉演示)

SELECT ABS(CHECKSUM(NEWID()) % (@max - @min + 1)) + @min

根据评论更新:

  • NEWID 生成随机字符串(对于返回的每一行)
  • CHECKSUM 获取字符串值并创建数字
  • 模数 (%) 除以该数字并返回余数(意味着最大值比您使用的数字减一)
  • ABS 将负面结果变为正面结果
  • 然后将结果加 1 以消除 0 个结果(模拟掷骰子)

关于sql - 生成 3 到 6 之间的随机 int 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7878287/

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