gpt4 book ai didi

sql-server - 如何使用 Delphi 以 SQL Server 方式对 GUID 进行排序

转载 作者:行者123 更新时间:2023-12-03 15:22:45 25 4
gpt4 key购买 nike

在我正在处理的一个项目中,如果我可以对内存中的 guid 列表进行排序并与按这些相同 guid 排序的 SQL Server 表进行比较,那就太好了。不幸的是,当 SQL Server 返回有序列表时,顺序并不是立即可见的。

在内存列表中对其进行排序以使顺序与 SQL Server 返回的顺序相同的最佳方法是什么?

例如,查询“SELECT ID FROM TABLE1 ORDER BY ID”返回:

A46030EC-BF3A-4F7C-88CC-00117DBC1A52
159A0A9D-18B7-4D6C-ABB3-005FAB666D91
3C58CFC5-1829-481C-9686-007CE71132B8
15A96D5F-DAFB-4EF1-9202-00B201CE5151
BCFDE733-0AB0-483F-B912-00BF93F6FA7E
6CC06558-7670-4879-9D3F-00CB3D3649BD

对于这个问题,假设我有一个字符串数组,其中包含上面的 guid 值,但顺序如下:

159A0A9D-18B7-4D6C-ABB3-005FAB666D91
15A96D5F-DAFB-4EF1-9202-00B201CE5151
6CC06558-7670-4879-9D3F-00CB3D3649BD
8A9325AF-A84E-4BDB-AFA8-C9D09D7FC064
A46030EC-BF3A-4F7C-88CC-00117DBC1A52
BCFDE733-0AB0-483F-B912-00BF93F6FA7E

我想看看 SQL 查询中缺少一个,并且拥有 SQL 查询中没有的一个。最快的方法显然是以相同的方式对两个列表进行排序,但我不想执行诸如“SELECT ID FROM TABLE1 ORDER BY cast(ID as varchar(100))”之类的查询,但是宁愿修复 Delphi 端的排序。

最佳答案

Alberto Ferrari已经写了一篇关于它的博客文章。从那里:

0 1 2 3  4 5  6 7  8 9  A B C D E F
00000000-0000-0000-0000-010000000000
  • 0..3 按从左到右的顺序评估,重要性较低,然后
  • 4..5 按从左到右的顺序计算,然后
  • 6..7 按从左到右的顺序计算,然后
  • 8..9 按从右到左的顺序计算,然后
  • A..F 按从右到左的顺序进行评估,并且是最重要的

关于sql-server - 如何使用 Delphi 以 SQL Server 方式对 GUID 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2375639/

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