J'ai une requête qui obtient le nom du mois d'une table. Mais cette colonne n'est pas un type de données datetime , c'est la colonne av archar . Comment puis-je le sortinger selon le nom du mois dans l'ordre croissant?
C'est la sortie que je reçois pour le moment.
août
novembre
octobre
septembre
C'est ma requête
select distinct(payemnt_month) as month from payement_details
Utilisez ci-dessous un j'ai ajouté votre mois avec jour et année. Ensuite, j'extraire le numéro du mois
select * from payment_details order by DATEPART(MM,payemnt_month+'01'+'00')
Mise à jour Si possible, mettez à jour votre requête comme ci-dessous.
SELECT * FROM ( SELECT DISTINCT month, Datepart(MM, payemnt_month+ '01' + '00') MONTHNO FROM payment_details )A ORDER BY MONTHNO
Ou comme ci-dessous si vous n'avez aucun problème à garder le mois non
SELECT DISTINCT month, Datepart(MM, payemnt_month+ '01' + '00') MONTHNO FROM payment_details order by month,Datepart(MM, payemnt_month+ '01' + '00')
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
Encadrez votre clause ORDER BY
comme ci-dessus et ajoutez-y les mois restants si nécessaire.
Il suffit de mettre l'ordre par clause comme:
select distinct(payemnt_month) as month from payement_details order by payemnt_month