我使用的是 SQL Server 2008。
我想使用 DetailRefNumber 对结果进行排序。但是,我无法实现像
这样的排序2.1
2.2
2.3
xxx
xxx
2.10
2.11
2.12
您能指导我该怎么做吗?
谢谢。
最佳答案
如果 DetailRefNumber
始终 是一个数字,用点分隔,您可以向该表添加两个计算列,这基本上将该列分成两个单独的,数值:
alter table dbo.YourTable
add RefNrMajor AS CAST(LEFT(DetailRefNumber, CHARINDEX('.', DetailRefNumber) - 1) AS INT) PERSISTED
alter table dbo.YourTable
add RefNrMinor AS CAST(SUBSTRING(DetailRefNumber, CHARINDEX('.', DetailRefNumber) + 1, 999) AS INT) PERSISTED
现在您可以按这些新的数字列进行排序:
SELECT (columns)
FROM dbo.YourTable
ORDER BY RefNrMajor, RefNrMinor
关于tsql - SQL 中的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7014027/