在SELECT DISTINCT 状况下使用 Order BY Newid() 随机数选出记录

在日常作业中,有时候可能是一些活动要抽出得奖人或选出抽查的一些名单,?
就常常会使用到 Order BY Newid() 的方式来做随机数选出,?
但有可能的状况需是要搭配到 DISTINCT 来选出,这时候如 DISTINCT 与 Order By Newid()?
同时使用就会遇到错误讯息

「如果已指定 SELECT DISTINCT,则 ORDER BY 项目必须显示于选取列表中」。?
以下这个范例,就分享一个最简单的处理办法。?
这边范例的数据库是使用
章立民
老师书中的范例中文北风数据库,?
透过用中文的范例数据库,让大家可以比较亲近一些,来了解这个范例的效果。?

如果想在这群 DISTINCT 数据中随机数选初10笔,?
则你有可能会直接联想到使用?
SELECT DISTINCT 员工编号,送货城市?
FROM dbo.订货主档?
Order by newid()?
当然因为 DISTINCT 内在最筛选数据时,没有 newid() 则一定会发生?
「如果已指定 SELECT DISTINCT,则 ORDER BY 项目必须显示于选取列表中」。?

那有可能就会想说,把 newid() 加进去SELECT 里面,这样Order BY 就没问题了,?
这样使用的话,效果可能你会发现是跟全部SELECT一样的效果。

所以说的那么多,解决的方法是什么呢??
就是把 DISTINCT(筛选)
与 Order By Newid() 随机数排序分成两个查询,在组合在一起,

SELECT TOP 10? *?
FROM — 仿真一个数据表?
(?
SELECT DISTINCT 员工编号,送货城市?
FROM dbo.订货主档?
) AS 虚构出来的数据表?
Order by newid()

就透过先筛选的子查询,在使用 newid() 就能过将这样的功能轻松的做出来

在SELECT DISTINCT 状况下使用 Order BY Newid() 随机数选出记录,布布扣,bubuko.com

时间: 2024-08-03 03:00:03

在SELECT DISTINCT 状况下使用 Order BY Newid() 随机数选出记录的相关文章

order by newid() 随机查询

在日常作业中,有时候可能是一些活动要抽出得奖人或选出抽查的一些名单,  就常常会使用到 Order BY Newid() 的方式来做随机数选出,  但有可能的状况需是要搭配到 DISTINCT 来选出,这时候如 DISTINCT 与 Order By Newid()  同时使用就会遇到错误讯息 「如果已指定 SELECT DISTINCT,则 ORDER BY 项目必须显示于选取列表中」.  以下这个范例,就分享一个最简单的处理办法.  这边范例的数据库是使用 章立民 老师书中的范例中文北风数据

LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg (转)

Select/Distinct操作符 适用场景:o(∩_∩)o- 查询呗. 说明:和SQL命令中的select作用相似但位置不同,查询表达式中的select及所接子句是放在表达式最后并把子句中的变量也就是结果返回回来:延迟. Select/Distinct操作包括9种形式,分别为简单用法. 匿名类型形式.条件形式.指定类型形式.筛选形式.整形类型形式. 嵌套类型形式.本地方法调用形式.Distinct形式. 1.简单用法: 这个示例返回仅含客户联系人姓名的序列. var q = from c i

LINQ to SQL语句(2)之Select/Distinct

Select/Distinct操作包括9种形式,分别为简单用 法.匿名类型形式.条件形式.指定类型形式.筛选形式.整形类型形式.嵌套 类型形式.本地方法调用形式.Distinct形式. 1.简单用法: 这个示 例返回仅含客户联系人姓名的序列. var q = from c in db.Customers select c.ContactName; 注意:这个语句 只是一个声明或者一个描述,并没有真正把数据取出来,只有当你需要该数据的 时候,它才会执行这个语句,这就是延迟加载(deferred l

LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg

上一篇讲述了LINQ,顺便说了一下Where操作,这篇开始我们继续说LINQ to SQL语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects.LINQ to DataSets.LINQ to SQL.LINQ to Entities.LINQ to XML,但是相对来说LINQ to SQL在我们程序中使用最多,毕竟所有的数据都要在数据库运行着各种操作.所以先来学习LINQ to SQL,其它的都差不多了,那么就从Select说起吧,这个在编写程序中也最为常用.

mysql中select distinct的用法

在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但 往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.其原因是distinct只能返回它的目标字段,而无法返回其它字段,经过实验, 有如下方法可以实现. 举例如下:这是test表的结构id test1 test21 a 12 a 23 a 34 a 15 b 16 b 27 b 38 b 2比如我想用一条语句查询得到test1不重复的所有数据,

mysql中select distinct的使用方法

在使用mysql时,有时须要查询出某个字段不反复的记录,尽管mysql提供有distinct这个keyword来过滤掉多余的反复记录仅仅保留一条,但往往仅仅用它来返回不反复记录的条数,而不是用它来返回不重记录的全部值.其原因是distinct仅仅能返回它的目标字段,而无法返回其他字段.经过实验,有例如以下方法能够实现. 举比例如以下: 这是test表的结构 id test1 test2 1 a 1 2 a 2 3 a 3 4 a 1 5 b 1 6 b 2 7 b 3 8 b 2 比方我想用一条

selenium处理select标签的下拉框

有时候我们会碰到<select></select>标签的下拉框.直接点击下拉框中的选项不一定可行.Selenium专门提供了Select类来处理下拉框. <select id="status" class="form-control valid" onchange="" name="status"> <option value=""></option&g

SQL SELECT DISTINCT 语句

SQL SELECT DISTINCT 语句 在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值. 关键词 DISTINCT 用于返回唯一不同的值. 语法: SELECT DISTINCT 列名称 FROM 表名称 使用 DISTINCT 关键词 如果要从 "Company" 列中选取所有的值,我们需要使用 SELECT 语句: SELECT Company FROM Orders "Orders"表: Company

二,本章讲解 SELECT DISTINCT 语句(distinct)

1. DISTINCT 语句(distinct) SQL SELECT DISTINCT 语句 在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值. 关键词 DISTINCT 用于返回唯一不同的值. 语法: SELECT DISTINCT 列名称 FROM 表名称 补充:select distinct(列名称) from 表名称 使用 DISTINCT 关键词 如果要从 "Company" 列中选取所有的值,我们需要使用 SELECT 语句