Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Korrektes Sortieren von gepunkteten Zahlen, die als Zeichen in SQL Server gespeichert sind

Wenn Sie SQL 2008 haben, können Sie den neuen Datentyp „hierarchieid“ verwenden:

WITH Items (ItemNumber) AS (
    SELECT '1' UNION ALL SELECT '1.1' UNION ALL SELECT '1.1.1'
    UNION ALL SELECT '10' UNION ALL SELECT '11' UNION ALL SELECT '2'
    UNION ALL SELECT '2.1' UNION ALL SELECT '20' UNION ALL SELECT '3'
    UNION ALL SELECT '30'
)
SELECT *
FROM Items 
ORDER BY Convert(hierarchyid, '/' + ItemNumber + '/');