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 にソートされます。

#\###数値タイプを保存するようにテーブルを変更し、'-' 文字を使用できるようにいくつかの形式を使用しようとしました。フォーマットされた数字について私が理解していることから、# は数字を格納し、\ は次の文字を文字どおりに表示します。

私はこの問題を解決するために完全に軌道から外れていますか、それとも私が見逃した小さなものがありますか?

4

1 に答える 1

2

たとえば、半分ずつ並べ替えることができます。

SELECT * FROM Table
ORDER BY Val(Left(ID,Instr(Id,"-"))), Val(Mid(ID,Instr(Id,"-")+1))
于 2012-07-17T09:05:19.180 に答える