`
逆风的香1314
  • 浏览: 1416095 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SQL BUG集之"随机排序中的newid()问题"

阅读更多

/**==** 2. 随机排序中的newid()问题 **==**/
--测试数据
declare @t table(name char(1),value int)
insert into @t
select 'a',1
union all select 'a',2
union all select 'b',3
union all select 'b',4
union all select 'c',5
union all select 'c',6

--要求,随机排序,但name相同的要排在一齐
select a.*
from @t a join(
 select aa=newid(),name from(select distinct name from @t) a
) b on a.name=b.name
order by b.aa,newid()

/*--测试结果之一,并没有达到要求.如果将join改成left right full join,就正确
name value      
---- -----------
b    4
b    3
c    5
a    1
a    2
c    6

(所影响的行数为 6 行)
--*/

分享到:
评论

相关推荐

    ms sql语句怎么样对随机记录进行排序

    在Microsoft SQL Server中,对随机记录进行排序是一个常见的需求,尤其是在数据分析、报告生成或测试数据随机化等场景中。本文将深入探讨如何使用MS SQL语句实现这一功能,并结合提供的SQL代码片段,详细解析其中...

    SQL 随机抽取数据

    在SQL Server中,如果需要从一张表中随机抽取指定数量的数据记录,可以利用`NEWID()`函数结合`ORDER BY`子句来实现这一功能。下面将详细介绍这一过程。 #### 二、`NEWID()`函数解释 `NEWID()`函数是SQL Server中的...

    sql server中随机函数NewID()和Rand()

    在SQL Server中,随机函数有rand(),NewID(),其中rand是在0到1内随机取数,NewID则是生成随机的uniqueidentifier唯一标识符。 SELECT * FROM Northwind..Orders ORDER BY NEWID() –随机排序 SELECT TOP 10 * ...

    SQL Server中生成随机浮点数

    在SQL Server中,生成随机浮点数是一种常见的需求,特别是在数据填充、测试或者模拟真实世界情境时。浮点数的随机生成可以帮助我们创建无规律的数据,避免数据的重复性,提高数据的多样性。这里我们将详细探讨如何在...

    Delphi连接SQL随机显示数据库中的记录..rar

    这个查询将返回`Employees`表的所有记录,但它们的顺序是基于系统生成的唯一标识符(NEWID()在SQL Server中,或者RAND()在某些其他数据库系统中),从而实现随机排序。 4. **绑定数据**:在Delphi中,可以通过...

    sql随机查出数据作调考用

    `NEWID()` 是一个返回新GUID值的函数,在SQL Server中可以利用它来生成随机排序。例如: ```sql SELECT TOP N * FROM TABLE ORDER BY NEWID(); ``` 这里的`N`表示要选择的记录数,`TABLE`是表名。 #### 2. 使用 `...

    数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)

    本篇文章将详细介绍如何在Oracle、MySQL和MS SQL Server这三种主流数据库系统中实现随机排序的结果。 1. Oracle数据库: Oracle提供了`DBMS_RANDOM.VALUE`函数来生成0到1之间的随机浮点数,可以将其用于`ORDER BY`...

    数据库随机查询代码

    `NEWID()`函数会生成一个唯一无序的GUID,因此通过`ORDER BY NEWID()`可以达到随机排序的效果。例如: ```sql SELECT TOP 50 [id] FROM [dbo].[RANDTEST] GROUP BY ID ORDER BY NEWID(); ``` 这条SQL语句从`...

    在ASP_NET中利用SQL函数完成在线考试系统的随机抽题功能

    在此基础上,我们可以通过编写SQL语句,利用ORDER BY newid()对mytest表中的记录进行随机排序,然后根据排序结果选取前n条记录作为随机抽取的试题。这一过程的SQL语句可大致如下: ``` SELECT TOP n testContent ...

    SQL Server里如何随机记录集

    本篇文章将深入探讨如何在SQL Server中实现这一功能,主要关注使用`NEWID()`函数来达到随机化记录集的效果。 首先,我们来看标题中提到的方法。`SELECT * FROM Person.Person ORDER BY NEWID()`,这是一个基础的SQL...

    如何在SQL Server中使用随机记录集

    在SQL查询中,当你将`NEWID()`作为`ORDER BY`子句的一部分时,系统会根据这些随机生成的GUID对结果集进行排序。由于GUID的随机性,这样排序的结果就是记录集的顺序也是随机的。 下面的SQL语句展示了如何使用`NEWID...

    如何从SQL表中进行随机选择

    首先,我们需要了解SQL中的随机选择方法。在SQL Server中,可以使用`NEWID()`函数来生成一个全局唯一标识符(GUID),它具有随机性。通过将这个函数与`ORDER BY`子句结合,我们可以实现随机选择。以下是一个简单的...

    在ASP·NET中利用SQL函数完成在线考试系统的随机抽题功能.pdf

    通过按`NEWID()`对数据进行排序,我们可以使用SQL的`SELECT`和`UPDATE`语句来实现随机抽取指定数量的试题,而无需复杂逻辑。 3. **具体实现步骤** - 设计一个名为`test`的数据库,其中包含一个名为`mytest`的表,...

    SQL随机数读取,利用rand()函数

    本文将详细介绍如何在SQL中利用`RAND()`函数结合其他函数来生成随机整数,并通过一个具体的示例来展示这一过程。 #### 一、RAND()函数简介 `RAND()`是SQL中的一个内置函数,它返回一个0到1之间的随机浮点数。这个...

    sql query examples.rar_Sql queries_query_random_sql

    在这个"sql query examples.rar_Sql queries_query_random_sql"压缩包中,我们有多个SQL查询示例,主要用于展示在Microsoft SQL Server中如何执行各种随机查询。下面将详细讨论这些示例中的关键知识点。 1. **基础...

    SQL生成n位随机字符串.pdf

    在本文中,我们将讨论如何使用SQL生成n位随机字符串。生成随机字符串是许多应用程序中的常见需求,例如生成密码、验证码、唯一标识符等。 生成随机字符串的方法 第一种方法是使用新生成的GUID来生成随机字符串。...

    SQL批量录入数据到数据库中

    SQL Server提供了一些内置函数,如`NEWID()`生成唯一标识符,`RAND()`生成随机数等,但它们可能无法满足复杂的随机数据需求。此时,可以借助一些第三方工具或库,比如T-SQL脚本生成器或者开源项目如`Faker.NET for ...

    order by newid() 各种数据库随机查询的方法

    当与`ORDER BY`子句一起使用时,它可以用来对结果集进行随机排序。例如,如果你想要从名为`TABLE`的表中随机选取前N条记录,你可以使用以下查询: ```sql SELECT TOP N * FROM TABLE ORDER BY NEWID(); ``` 这将...

Global site tag (gtag.js) - Google Analytics