次のようなフィールドがあります。
- 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で始まり3で終わる (4-5-6-7-8-9-10-11-12-1-2-3)(月)
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 構文は、データベースによって異なる場合があります。