问题标签 [newid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - T-SQL 的“ORDER BY RAND()”和“ORDER BY NEWID()”的官方文档在哪里?
我正在寻找“ORDER BY RAND()”和“ORDER BY NEWID()”的官方 T-SQL 文档。有许多文章描述了它们,因此必须在某个地方记录它们。
我正在寻找这样的官方 SQL Server 文档页面的链接: http ://technet.microsoft.com/en-us/library/ms188385.aspx
澄清:
我正在寻找的是“order_by_expression”的文档,它解释了非负整数常量、返回非负整数的函数和返回任何其他值的函数(如 RAND() 或 NEWID() )。
回答:
我为我最初的问题缺乏明确性表示歉意。与大多数与编程相关的问题一样,该问题的解决方案主要是弄清楚您实际上要回答什么问题。
谢谢大家。
答案在本文档中:来自: http: //www.wiscorp.com/sql200n.zip
至此,我们有了答案的前半部分:
SELECT 语句是一种 CURSOR,这意味着可以在每一行上迭代地执行操作。尽管我没有在文档中找到明确说明的语句,但我很乐意假设 order_by_expression 中的表达式将为每一行执行。
现在,当您使用 RAND() 或 NEWID() 或 CEILING(RAND() + .5) / 2 而不是数字常量或列名时,发生了什么是有意义的。
该表达式永远不会被视为列号。它始终是为每一行生成的值,将用作确定行顺序的基础。
但是,为了彻底起见,让我们继续对表达式的完整定义。
这将我们带到:
我们在哪里找到答案的后半部分:
从这里我们深入到可以使用的众多可能的表达式类型。
NEWID() 返回一个唯一标识符。
假设唯一标识符以数字方式进行比较似乎是合理的,因此如果表达式是 NEWID(),我们的 <common value expression> 将是一个 <numeric value expression>。
类似地,RAND() 返回一个数值,它也将被评估为一个<数值表达式>。
因此,尽管我无法在 Microsoft 的官方文档中找到任何解释 ORDER BY 在使用作为表达式的 order_by_expression 调用时的作用的任何内容,但它确实已记录在案,因为我知道它必须如此。
sql - 应用 ORDER BY NEWID() 随机获取记录时如何防止重复记录?
我尝试使用以随机顺序返回行中提供的解决方案来获取查询中的随机记录。但我必须添加NEWID()
到我想要获取的列列表中,否则我将无法添加ORDER BY NEWID()
. 不幸的是,它使我的结果集包含重复记录。
为了更清楚地说明,由于请求的列中存在 NEWID(),此查询使我的结果重复:
我怎样才能克服这个不获取唯一记录的问题(这里的 BookID 是 PK)?
sql - 使用 like 语句检索随机行(超过 500 万行)
我有一个带有两个表的数据库 tblVideos 大约有 800 万行,包含 Id(自动增量 1,1)、videoId、Name、Tags、(FK)VideoProviderId tblVideoProviders 目前大约有 6 个提供程序,并且有 3 列:Id(自动递增 1,1 tiny int)、名称、Url(使用提供者 + 视频 ID 构建链接)
与 YouTube 不同,较小的提供商没有 API 来返回数组然后随机获取一些东西。
以我现在得到的两种方式检索完全随机的行都需要不到一秒钟的时间:
或者
稍长
但是一旦我开始寻找更具体的东西:
查询达到 8 秒,删除最后一个或tblVideos 之类的将其缩短到 4~5 秒,但这太高了。
在没有“order by newid()”的情况下检索整个查询将使查询花费更少的时间,但应用程序将消耗每个用户大约 0.2~2 MB 的数据,并且假设有超过 200~400 个同时请求最终在很多数据
sql - SQL Server:使用特殊字符更新列
我是 SQL Server 的新手,所以请原谅我可能会提出愚蠢的问题。
我有一个数据库,我需要生成我通过使用实现的随机 idnewid()
但问题是team_code
id 需要放在大括号中,我不知道该怎么做。
你有什么建议吗?
谢谢^
sql - 防止随机行和重复的重复
我有一个数据集,我需要随机选择满足特定条件的 x 行、满足其他条件的 x 行等,并将结果全部输出到一个表中。我一直在使用以下内容:
这可行,但有一个问题:它允许重复客户端标识符 (dbo.[Client List].[ClientID] 被选中。我所有的结果都必须是唯一的客户端。
换句话说,它必须进行第一次随机选择,然后进行第二次随机选择,而不能选择在第一次选择中选择的任何 ClientID,依此类推。(是的,我意识到这在技术上不是“随机的”。)有没有办法可以在每个后续 SELECT 的 WHERE 语句中添加某种代码,或者我是否需要重新考虑代码的整个结构?谢谢!
sql - NewID() 需要很长时间来处理
我正在为一个包含 200 万多条记录的表执行下面的代码,但 NewID() 需要很长时间才能运行。
您能否建议一种替代方法来加快查询速度?
sql-server - 在具有 400 万条记录的现有表上更改为 newsequentialid()
我的问题几乎与在现有表上将 newid() 更改为 newsequentialid()相同
如果我更改为 newsequentialid() 比索引应该更紧凑,对吗?如果序列在插入新记录时遇到存在 ID 会发生什么?数据库之前会检查吗?
sql-server - sql server 中的 newID() 是什么?
sql server 中的 newID() 是什么?
sql - 选择价值大多较高而很少较低的行
我正在尝试从表中选择一个随机行,但是该表中有一个名为 的列Rate
,我希望它返回具有较高速率的行,并且很少返回具有较低速率的行,是这样吗可能的?
桌子 :
sql-server-2008 - 使用 NEWID() 而不丢失不同?
我正在尝试从(设计不佳的)sql 数据库中创建一个新的数据提取。客户要求我添加一个我尝试使用 NEWID() 函数执行的 distinctidentifier。不幸的是,这会导致返回多个重复记录。
经过一番研究,我发现 NEWID() 函数确实“撤消”了 distinct 关键字的使用,但我无法弄清楚为什么或如何克服这个问题。
我尝试编写的查询示例如下:
如果我错过了选择块中的 NEWID() 行,我会返回 569 条记录,这是正确的,但如果我包含该行,那么我会得到超过 30,000 条记录,这些记录都是原始 569 条的重复,但 ID 不同。任何人都可以提出解决这个问题的方法吗?
提前致谢