TTC*_*TCG 2 t-sql sorting sql-server-2008
我正在使用SQL Server 2008.
我想使用DetailRefNumber对结果进行排序.但是,我无法实现排序
2.1
2.2
2.3
xxx
xxx
2.10
2.11
2.12
Run Code Online (Sandbox Code Playgroud)
你能指导我怎么做吗?
谢谢.
如果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
Run Code Online (Sandbox Code Playgroud)
现在您可以通过这些新的数字列进行排序:
SELECT (columns)
FROM dbo.YourTable
ORDER BY RefNrMajor, RefNrMinor
Run Code Online (Sandbox Code Playgroud)