2012-07-17 36 views
1

我正在幫助某人整理數據庫。它以表格A-BBB中的文本類型的ID索引,其中A和B是數字0-9。這種形式是我們的應用程序所需要的,唯一的缺點是它按照ASCII標準排序,所以編號爲1,10,2等。顯然,我們希望它按A排序,然後按BBB排序。所以ID 1-001,10-010,1-010和10-001將被分類爲1-001,1-010,10-001和10-010。將文本轉換爲格式化的數字類型

我試圖改變表來保存數字類型,並使用#\###格式的數字來允許' - '字符。根據我對格式化數字的理解,#存儲一個數字,\將下一個字符顯示爲字面外觀。

我在解決這個問題上完全偏離軌道,還是有一些我錯過了?

回答

2

您可以通過每半年進行排序,例如:

SELECT * FROM Table 
ORDER BY Val(Left(ID,Instr(Id,"-"))), Val(Mid(ID,Instr(Id,"-")+1)) 
+1

+1這是我會抽appeoach,我的順序按行看起來是這樣,但:「ORDER BY CDbl(MID([ID] ,1,InStr([ID],「 - 」) - 1)),CDbl(Right([ID],Len([ID]) - InStr([ID],「 - 」)))「 – 2012-07-18 14:39:16

相關問題