在GUID SQL Server 2008上排序

Sre*_*har 6 sql-server sql-server-2008

在Guid上对记录进行排序的最佳方法是什么?以下从未给出正确的结果.

    With UIDs As (--                        
            Select ID =  1, UID = NEWID() 
    Union   Select ID =  2, UID = NEWID()
    Union   Select ID =  3, UID = NEWID()
    Union   Select ID =  4, UID = NEWID()
    Union   Select ID =  5, UID = NEWID()
    Union   Select ID =  6, UID = NEWID()
    Union   Select ID =  7, UID = NEWID()
    Union   Select ID =  8, UID = NEWID()
    Union   Select ID =  9, UID = NEWID()
    Union   Select ID = 10, UID = NEWID()
    Union   Select ID = 11, UID = NEWID()
    Union   Select ID = 12, UID = NEWID()
    Union   Select ID = 13, UID = NEWID()
    Union   Select ID = 14, UID = NEWID()
    Union   Select ID = 15, UID = NEWID()
    Union   Select ID = 16, UID = NEWID()
)
Select * From UIDs Order BY  UID, ID
Run Code Online (Sandbox Code Playgroud)

而是使用Guid,我如何在我的选择中生成顺序整数.

谢谢

小智 19

SELECT * 
FROM myTable 
ORDER BY CAST(myGuid AS VARCHAR(36))
Run Code Online (Sandbox Code Playgroud)


gbn*_*gbn 5

不要是最好的答案。

这就解释了SQL Server的方式:SQL Server 如何对GUID进行排序?

您有NEWSEQUENTIALID,但是不能保证可以按预期排序。还有为什么在具有排名功能时使用GUID?

  • 可能是这样,但我正在调试,并试图在数据库中找到一个特定的键,并想按他们的 GUID ID 字母顺序对我的行进行排序,所以最受好评的答案实际上是我需要的 :) 但你是对,不要在这样的应用程序之外使用它。 (2认同)