6
I need to make a ORDER BY
in a table mes
which has the months in full and in Portuguese (Janeiro, Fevereiro...)
. It has no relation to any other column in the table. It is possible to do this?
6
I need to make a ORDER BY
in a table mes
which has the months in full and in Portuguese (Janeiro, Fevereiro...)
. It has no relation to any other column in the table. It is possible to do this?
4
I’ve been looking into it, and I think I found a solution for you string
of the month for the respective number (ex.: Janeiro = 1
):
SELECT
CASE
WHEN mes = "Janeiro" THEN 1
WHEN mes = "Fevereiro" THEN 2
WHEN mes = "Março" THEN 3
WHEN mes = "Abril" THEN 4
...
END as meses
, mes //apresentar também o mês em string ao lado do número
FROM tbl_meses;
ORDER BY meses ASC
It worked with the second code, I just had to change a few things, I put LIKE instead of = and exchange the double quotes for single. Thanks.
I just detected a little problem... the result of the month is coming as integer, instead of coming as it was originally.
Yes, it was necessary for the order by
. But you can still present the month, I’ll edit
1
If this table is just to translate the months a simple solution is to add a column with month number the sort must be done by year and by that new column.
If you have a date or similar field and want to display the month in full in Portuguese you can set the locale in the session and sort by month.
set lc_time = 'portuguese';
select to_char(data,'tmmonth') from tabela order by extract(year from data), extract(month from data)
Then I will edit the response to add the necessary settings for the locale to work correctly.
Browser other questions tagged postgresql order-by classification
You are not signed in. Login or sign up in order to post.
I doubt you can do it just by string..
– CesarMiguel