很多人在开发需求中想获取一个随机数,或者从一组数字中获取一个数, 这个需求很简单,而且有很多方式可以实现,下面就介绍几种常见的方式,以作为笔记或供有需要的人参考.

比如有一组数字: 57 59 63 66 89 92 95,我们要从中随机取出一个:

方法一: 建表
--创建中间表存放随机数字
CREATE TABLE rand_number(id INT IDENTITY,num INT);
INSERT INTO dbo.rand_number
( num )--57 59 63 66 89 92 95
VALUES ( 57 ),( 59 ),( 63 ),( 66 ),( 89 ),( 92 ),( 95 );

取随机数
SELECT  num FROM dbo.rand_number WHERE id=ROUND(RAND()*6+1,0);


方法二: 不建表(CTE虚拟表)
;WITH temp_table AS(
SELECT 1 id,57 num UNION ALL
SELECT 2 id,59 num UNION ALL
SELECT 3 id,63 num UNION ALL
SELECT 4 id,66 num UNION ALL
SELECT 5 id,89 num UNION ALL
SELECT 6 id,92 num UNION ALL
SELECT 7 id,95 num
)
SELECT num FROM temp_table WHERE id=ROUND(RAND()*6+1,0);


方法三: 不建表 (派生表)
SELECT TOP 1 num FROM(
SELECT 57 num UNION ALL
SELECT 59 UNION ALL
SELECT 63 UNION ALL
SELECT 66 UNION ALL
SELECT 89 UNION ALL
SELECT 92 UNION ALL
SELECT 95
)t
ORDER BY NEWID();

 

SQL Server 从一组数字中随机获取一个数的更多相关文章

  1. java 从List<Integer> 中随机获取6个数

    List<Integer> list 为不重复的数字集合,例如:1,2,3,4,5,6,7,8,9,10 从中随机获取不重复的6个数.代码如下. List<Integer> l ...

  2. SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法

    操作步骤: 1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击"开始"."运行",然后在"打开&quo ...

  3. 如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?

    如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?(2006-12-14 09:25:36) 与这个问题具有相同性质的其他描述还包括:如何 ...

  4. SQL点滴12—SQL Server备份还原数据库中的小把戏

    原文:SQL点滴12-SQL Server备份还原数据库中的小把戏 备份数据库时出现一个不太了解的错误 ,错误信息“is formatted to support  1 media families, ...

  5. js在数组arr中随机获取count数量的元素

    // 在数组arr中随机获取count数量的元素; const getRandomArrayElements = (arr, num) => { // 新建一个数组,将传入的数组复制过来,用于运 ...

  6. php 从一个数组中随机获取固定数据

    <?php /* * * 通过一个标识,从一个数组中随机获取固定数据 * $arr 数组 * $num 获取的数量 * $time 随机固定标识值,一般用固定时间或者某个固定整型 * */ fu ...

  7. Sql Server与.Net(C#)中星期值对比

    最近发现Sql Server与.Net(C#)中星期值居然不匹配,倒不知道依哪一个了. 1.Sql Server declare @date datetime; set @date = '2017-0 ...

  8. sql server 提取汉字/数字/字母的方法

    sql server 提取汉字/数字/字母的方法 --提取数字 IF OBJECT_ID('DBO.GET_NUMBER2') IS NOT NULL DROP FUNCTION DBO.GET_NU ...

  9. 解决VS2010在新建实体数据模型出现“在 .NET Framework Data Provider for Microsoft SQL Server Compact 3.5 中发生错误。请与提供程序供应商联系以解决此问题。”的问题

    最近想试着学习ASP.NET MVC,在点击 添加--新建项--Visual C#下的数据中的ADO.NET 实体数据模型,到"选择您的数据连接"时,出现错误,"在 .N ...

随机推荐

  1. [Algorithm] 387. First Unique Character in a String

    Given a string, find the first non-repeating character in it and return it's index. If it doesn't ex ...

  2. (1)IdentityServer4 V3.0.2-安装模板

    控制台运行命令: dotnet new -i IdentityServer4.Templates

  3. BZOJ 2091: [Poi2010]The Minima Game 博弈dp

    十分有趣的问题. 我们发现如果拿的话肯定要先拿一些大的. 所以我们可以先将所有数从小到大排序,令 $f[i]$ 表示拿完前 $i$ 小先手-后手的最大值. 则有转移:$f[i]=max(f[i-1], ...

  4. AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas

    忘记网址了…… 问题: 分析思路与解决方法:

  5. A@[G!C]%008

    A@[G!C]%008 A Simple Calculator 细节题. B Contiguous Repainting 最后只要有连续\(K\)个鸽子同色就可以构造方案,枚举+前缀和 C Tetro ...

  6. 【数论】[因数个数]P4167樱花

    题目描述 求不定方程 \(\frac {1}{x} + \frac{1}{y} = \frac{1}{n!}\)的正整数解的个数 \(n \leq 100^6\) Solution 化简得 \(x * ...

  7. Future home of something quite cool.

    我绑定二级域名的时候显示内页如下,怎么办??一级主域名没问题呀~ Future home of something quite cool.If you're the site owner, log i ...

  8. List和数组的互转

    list转数组: /要转换的list集合 List<String> testList = new ArrayList<String>(){{add("aa" ...

  9. php laravel 环境搭建

    最近上一个新项目,时间比较紧,为了满足业务需求,没有办法,只有上我大 php 了,找了一个带些基础的数据结构,用的是 laravel 搭建的,然后寻坑就开始了,先是构建 docker 镜像就坑了,然后 ...

  10. 前端知识点回顾之重点篇——CSS中flex布局

    flex布局 来源: http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool 采用 Flex 布局的元素 ...