17-04-2015, 22:08
Mam pewien problem dotyczący danych tekstowych. W tabeli atrybutów mam kolumnę zawierającą numery działek zgodne z TERYTem dla województwa. pierwszych kilkanaście znaków zawiera numer województwa, powiatu, gminy, rodzaj gminy, numer obrębu. To są wartości które mają stałą liczbę znaków. Dalej jest numer działki. I tu pojawia się problem, ponieważ numer działki jest czasem poprzedzony innym tekstem. Wygląda to tak:
przykładowe działki zapisane standardowo:
140704_2.0004.175/1
140704_2.0004.29/1
140704_2.0004.198
przykładowe działki zapisane niestandardowo:
140704_2.0003.AR_22.257/1
140704_2.0003.AR_3.128
140704_2.0003.AR_2.224
Potrzebuję do oddzielnej kolumny wyciągnąć tekst zaczynający się od "AR" do kropki. Problem polega na tym, że ten tekst może mieć 4 bądź 5 znaków długości. Próbowałem w kalkulatorze pól zastosować coś takiego:
CASE
WHEN regexp_match( "nazwa kolumny teryt" , 'AR') =1
THEN substr( "nazwa kolumny teryt", 15, strpos( "nazwa kolumny teryt", '.',15)-15)
ELSE 'brak'
END
Niestety w QGIS prawdopodobnie funkcja strpos nie może zawierać trzeciego argumentu oznaczającego numer znaku od którego ma zacząć przeszukiwanie. Może ktoś z Was ma jakiś pomysł?...
przykładowe działki zapisane standardowo:
140704_2.0004.175/1
140704_2.0004.29/1
140704_2.0004.198
przykładowe działki zapisane niestandardowo:
140704_2.0003.AR_22.257/1
140704_2.0003.AR_3.128
140704_2.0003.AR_2.224
Potrzebuję do oddzielnej kolumny wyciągnąć tekst zaczynający się od "AR" do kropki. Problem polega na tym, że ten tekst może mieć 4 bądź 5 znaków długości. Próbowałem w kalkulatorze pól zastosować coś takiego:
CASE
WHEN regexp_match( "nazwa kolumny teryt" , 'AR') =1
THEN substr( "nazwa kolumny teryt", 15, strpos( "nazwa kolumny teryt", '.',15)-15)
ELSE 'brak'
END
Niestety w QGIS prawdopodobnie funkcja strpos nie może zawierać trzeciego argumentu oznaczającego numer znaku od którego ma zacząć przeszukiwanie. Może ktoś z Was ma jakiś pomysł?...