ska*_*adt 4 sql-server delphi sorting guid
在我正在研究的项目中,如果我可以对guid的内存列表进行排序并与这些相同guid命令的SQL服务器表进行比较,那将是很好的.不幸的是,当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
Run Code Online (Sandbox Code Playgroud)
为了这个问题,我假设我有一个包含上面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
Run Code Online (Sandbox Code Playgroud)
我想看到我在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
Run Code Online (Sandbox Code Playgroud)