2014-04-08

[pgsql] Zmiana typu kolumny na potrzeby sortowania

Załóżmy, że mamy tabelę z kolumną typu varchar, w której są kody (np. 14.5). Jeśli chcielibyśmy posortować dane za pomocą order by:

SELECT kod FROM tabela ORDER BY kod;

to otrzymalibyśmy je w kolejności:
0.1
0.16
0.3
10.11
10.4
10.6
10.8
11.11
11.4
1.16
11.6
1.2
12.11
12.4
(...)

Jeśli chcielibyśmy posortować kolumnę wg wielkości liczby to musimy rzutować kolumnę na numeric. Zapytanie wyglądać powinno zatem w ten sposób:

SELECT kod FROM tabela ORDER BY kod::numeric;

dzięki temu otrzymamy wynik:
0.1
0.16
0.3
1.16
1.2
2.17
2.4
2.5
3.4
3.9
4.10
4.4
5.8
6.10
6.16
6.4
(...)

Brak komentarzy:

Prześlij komentarz