2014-04-08

[netbeans] Replace za pomocą regular expression

NetBeans wspiera zamianę tekstu przy użyciu wyrażeń regularnych. Jeśli chcielibyśmy zamienić tekst (usunąć jeden z nawiasów):
kod='1', (SELECT
kod='2', (SELECT
kod='14', (SELECT
kod='2', (SELECT
kod='3', (SELECT
kod='5', (SELECT
kod='7', (SELECT
kod='29', (SELECT
kod='2', (SELECT
kod='3', (SELECT

na:
kod='1'), (SELECT
kod='2'), (SELECT
kod='14'), (SELECT
kod='2'), (SELECT
kod='3'), (SELECT
kod='5'), (SELECT
kod='7'), (SELECT
kod='29'), (SELECT
kod='2'), (SELECT
kod='3'), (SELECT

odpalamy Ctrl+H i wpisujemy w pola:

Find What: kod='([0-9]{1,2})', \(SELECT
Replace With: kod='$1'), (SELECT id

[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
(...)