Pytanie w temacie PostgreSQL
Witam. Mam mala zagwozdke przy stworzeniu - wydawaloby sie - dosc prostego zapytania typu UPDATE.
O co mi chodzi.
Mam prosta strukture tabeli - powiedzmy (dla uproszczenia) z kolumnami TYP1 i TYP2
kolumna TYP 1 zawiera ciagi znakow o schamacie typu "LICZBA.LITERY" lub "LICZBA.LITERY.LIERY" - na przyklad "7.MPQ.G" "18.GP" "17562.H.JUT" itp - czyli zawsze jest najpierw liczba a potem po kropce jedna lub dwie grupy liter (jesli sa dwie to dzieli je rowniez kropka).
Potrzebuje zapytaniem zrobic kopie wartosci pola TYP1 do TYP2 z obcieciem liczby i pierwszej kropki. czyli w pozyzszych przykladach powinno zostac przekopiowane odpowiednio "MPQ.G" "GP" "H.JUT".
Nie mam zadnych problemow ze zrobieniem tego przy pomocy chocby PHP (czyli w ukladzie SELECT - substr - UPDATE) ale zalezy mi by zrobic to jednym zapytaniem update w bazie - i tu pytanie czy SQL dysponuje w swojej bibliotece funkcja ktora by byla w stanie obciac mi ten tekst z takimi zalozeniami ? Widze w specyfikacji SUBSTR sql ale ona dziala na indeksach a tych nie moge zastosowac ze wzgledu na roznorodnosc tesktow do obrobki.
Inaczej mowiac jak w SQL uzyskac odpowiednik dzialania tandemu substr i strstr w php.
substr($txt,strstr($txt,'.')+1);
INSTR zwraca w SQL wystąpienie danego znaku, więc przypuszczam, że robi to samo co strstr
w oracle'u mialbys cos takiego: substr('17562.H.JUT',instr('17562.H.JUT','.')+1) . Nie sadze, zeby postgresSQL sie bardzo roznil.