0

データベース テーブルに非常に大きなデータがあり、ID (主キー) に基づいてデータを並べ替えたいと考えています。キー列のデータは次のようになります。

001/2011,
002/2011,
001/2012

「」を使用するorder by idと、行が次のようにソートされます

001/2011,
001/2012,
002/2011

しかし、私が探しているのは

001/2011,
002/2011,
001/2012

id 列のデータ型は ですvarchar(50)。そのようなタイプのデータをソートするために使用する特別な SQL 関数はありますか?

4

1 に答える 1

3
ORDER BY RIGHT(ID,4)+LEFT(ID,3)

これにより、varcharデータが再配置され、年が最初になり、シーケンス/月/日が後になります。

データに他の形式がある場合は、同じ方針で考えてください。SUBSTRINGを使用して文字列をシフトします。このうち、LEFTとRIGHTは2つの特定のバージョンです。

于 2012-10-17T11:44:17.593 に答える