在我正在处理的项目中,如果我能够对内存中的guid列表进行排序并与按这些相同guid排序的SQL服务器表进行比较,那就太好了。不幸的是,当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端修复排序。