2016-07-14 46 views
2

查询:订购VARCHAR

SELECT DISTINCT ID 
FROM myTable 
GROUP BY ID 

实际结果:

x.1.1.10 
x.1.1.11 
x.1.1.3 
x.1.1.4 
x.1.1.5 
x.1.1.6 
x.1.1.7 
x.1.1.8 
x.1.1.9 

预期结果:

x.1.1.3 
x.1.1.4 
x.1.1.5 
x.1.1.6 
x.1.1.7 
x.1.1.8 
x.1.1.9 
x.1.1.10 
x.1.1.11 
+3

你得用上点亮数据然后按'ID'的每个部分排序。什么[RDBMS](https://en.wikipedia.org/wiki/Relational_database_management_system)?你有什么尝试? –

+0

您是否尝试过'order by'子句? – Sankar

+0

@SankarRaj,它不会帮助。请看我的评论。 –

回答

0

尝试这个

SELECT T.ID 
FROM myTable T 
CROSS APPLY (
    SELECT X = CAST('<i>' + REPLACE(ID, '.', '</i><i>') + '</i>' AS XML) 
) X 
ORDER BY by X.VALUE('i[1]','int'),X.VALUE('i[2]','int'), X.VALUE('i[3]','int')