使用 sql 查询检索时如何对 table 中的月份进行排序?
How to sort month in a table when retrieving using the sql query?
我有一个从 table 获取月份名称的查询。但是这个列不是日期时间数据类型,它是一个varchar 列。如何按月份升序排列?
这是我现在得到的输出。
August
November
October
September
这是我的查询
select distinct(payemnt_month) as month from payement_details
使用下面的一个,我已将您的月份附加到日期和年份。然后我提取月数
select * from payment_details order by DATEPART(MM,payemnt_month+'01'+'00')
更新
如果可能,请像下面这样更新您的查询。
SELECT * FROM
(
SELECT DISTINCT month,
Datepart(MM, payemnt_month+ '01' + '00') MONTHNO
FROM payment_details )A
ORDER BY MONTHNO
如果您没有任何问题可以保留月号,或者像下面一样
SELECT DISTINCT month,
Datepart(MM, payemnt_month+ '01' + '00') MONTHNO
FROM payment_details
order by month,Datepart(MM, payemnt_month+ '01' + '00')
只需按子句排序即可:
select distinct(payemnt_month) as month from payement_details order by payemnt_month
ORDER BY CASE WHEN payment_month='August' THEN 8
WHEN payment_month='November' THEN 11
WHEN payment_month='October' THEN 10
WHEN payment_month='September' THEN 9 END
如上构建您的 ORDER BY
子句,并根据需要添加剩余的月份。
我有一个从 table 获取月份名称的查询。但是这个列不是日期时间数据类型,它是一个varchar 列。如何按月份升序排列?
这是我现在得到的输出。
August
November
October
September
这是我的查询
select distinct(payemnt_month) as month from payement_details
使用下面的一个,我已将您的月份附加到日期和年份。然后我提取月数
select * from payment_details order by DATEPART(MM,payemnt_month+'01'+'00')
更新 如果可能,请像下面这样更新您的查询。
SELECT * FROM
(
SELECT DISTINCT month,
Datepart(MM, payemnt_month+ '01' + '00') MONTHNO
FROM payment_details )A
ORDER BY MONTHNO
如果您没有任何问题可以保留月号,或者像下面一样
SELECT DISTINCT month,
Datepart(MM, payemnt_month+ '01' + '00') MONTHNO
FROM payment_details
order by month,Datepart(MM, payemnt_month+ '01' + '00')
只需按子句排序即可:
select distinct(payemnt_month) as month from payement_details order by payemnt_month
ORDER BY CASE WHEN payment_month='August' THEN 8
WHEN payment_month='November' THEN 11
WHEN payment_month='October' THEN 10
WHEN payment_month='September' THEN 9 END
如上构建您的 ORDER BY
子句,并根据需要添加剩余的月份。