2017-12-21 4 views
0

私は "Month"という列を持つSQLテーブル/ビューを持っています。このデータは "MonthName" + "Year"という列に表示されます。 "SQL TABLE"。これを年月でソートする方法があるかどうかを知りたいですか?私は "月ごとの注文"を試みましたが、それはアルファベット順に並んでいます。SQLテーブル/ビューを月別に並べ替えるにはどうすればいいですか?

+0

2番目の列で注文します。これは2015年11月以降の月数です(これを正しく解釈している場合)。次に、datetimeフィールドを持つようにテーブルを再設計します。編集:実際には、私は2回目を見てそのように表示されません。代わりに再設計をしてください。 –

+0

完全な日付や他のオプションを使用して年のシーケンスを取得していない場合は、理解したように、文字列であるため、月の年のフィールドから年を部分文字列にする必要があります。次に、この部分文字列でソートすることができます。 – Alex

答えて

3

DATEのcolumでDATE型と順にcolum( "Monnth" "年")を変換することができます。これは、各値を月/年の最初の日に対応するDATEオブジェクトに変換します。次に、それを並べ替えます:

SELECT 
* 
FROM 
MyTable 
ORDER BY 
CONVERT(DATE,[Month]) 
+0

これはまさに私が探していたものです。 – Satwant

+0

よろしくお願いします。運が良かった。 –

0

あなたは、あなたの[Month]列(月+年)にCONVERT機能を使用することができます

SELECT 
    TO_DATE('August 2017' 
      ,'Month YYYY') 
FROM DUAL; 
+1

これはOracle上で動作しますが、OPタグ付き 'sql-server' –

0

私は日付フィールドを使用し、それを並べ替えます。

concate(DATENAME(month,MyDateField), " ", YEAR(MyDateField)) 

ビュー、クエリ、または永続化された計算列では、最適な方法に応じて使用できます。

関連する問題