Сортировка по GUID SQL Server 2008 - PullRequest
       0

Сортировка по GUID SQL Server 2008

4 голосов
/ 07 сентября 2010

Как лучше всего сортировать записи на 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

Вместо использования Guid, как я могу генерировать последовательные целые числа в моем выборе.

Спасибо

Ответы [ 2 ]

17 голосов
/ 10 октября 2015
SELECT * 
FROM myTable 
ORDER BY CAST(myGuid AS VARCHAR(36))
4 голосов
/ 07 сентября 2010

Не лучший ответ.

Это объясняет, как SQL Server: Как идентификаторы GUID сортируются SQL Server?

У вас есть NEWSEQUENTIALID , но это не гарантирует для сортировки, как вы ожидаете. И зачем использовать GUID, когда у вас есть функции ранжирования?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...