0

次のようなフィールドがあります。

  • 1月~3月
  • 12月~1月</li>
  • 3月~12月</li>
  • 4月~12月</li>
  • 9月~8月</li>
  • 6月~7月</li>

その列を次のように並べ替えるにはどうすればよいですか:

  • 4月~12月</li>
  • 6月~7月</li>
  • 9月~8月</li>
  • 12月~1月</li>
  • 1月~3月
  • 3月~12月</li>

4で始まり3で終わる (4-5-6-7-8-9-10-11-12-1-2-3)(月)

4

2 に答える 2

0

CASEこれで十分です。フィールドの数値部分を分離し、次のステートメントを使用する必要があります。

SELECT *
FROM Table1
ORDER BY CASE WHEN CAST(LEFT(Col1, CHARINDEX('月',Col1)-1)AS INT) >= 4  THEN 1 END DESC
        ,CAST(LEFT(Col1, CHARINDEX('月',Col1)-1)AS INT)

デモ: SQL フィドル

上記の SQL Server 構文は、データベースによって異なる場合があります。

于 2013-10-24T15:46:15.853 に答える