Damian Kubat

Damian Kubat Asystent urbanisty

Temat: SQL - wydobycie fragmentu tekstu do etykiety.

Cześć,
tym razem mam problem z etykietami, chciałbym aby atykieta wyświetlała fragment rekordu, ale nie na zadaną "długość" tylko dynamicznie w zależności od długości tekstu np:

Zawartość kolumny "R":
(2:abc)
(1:ab)
(3:abdhfjsk)

Pożądany widok etykiet:
abc
ab
abdhfjsk

Ktoś może zna rozwiązanie ?

Temat: SQL - wydobycie fragmentu tekstu do etykiety.

W Arcu można np. tak:
Layer Properties - Layers - Expression
Zaznaczaczas Parser jako Python, klikasz Advanced i dopisujesz na końcu [3:-1] - czyli pokaż znaki od czwartego do przedostatniego.
Cała definicja wyrażenia wygląda tak (dwie spacje przed return są niezbędne):
def FindLabel ( [R] ):
return [R][3:-1]

konto usunięte

Temat: SQL - wydobycie fragmentu tekstu do etykiety.

np:
MID(R,FIND(':',R)+1,LEN(R)-FIND(':',R)-1)
Damian Kubat

Damian Kubat Asystent urbanisty

Temat: SQL - wydobycie fragmentu tekstu do etykiety.

Dziękuje za odpowiedzi, ale niestety problem dalej istnieje.

Zapomniałem dodać, że rozwiązania szukam do qgis-a.
funkcja proponowana przez P. Leszka nie działa - zwrotną informacją jest "błędne wyrażenie"

konto usunięte

Temat: SQL - wydobycie fragmentu tekstu do etykiety.

w tłumaczeniu na składnię QGIS-a będzie jakoś tak:
substr(R,strpos(R,':')+1, length(R)-strpos(R,':')-1)
albo prościej z wyrażeniem regularnym:
regexp_substr( R, '[:](.*)?[)]') - tu warunek, że w samej etykiecie nie ma nawiasów, bo obetnie do pierwszego prawego nawiasu.Ten post został edytowany przez Autora dnia 12.10.16 o godzinie 10:52
Damian Kubat

Damian Kubat Asystent urbanisty

Temat: SQL - wydobycie fragmentu tekstu do etykiety.

w Qgis dokładnie tak:
substr(K,strpos(K,':')+2, length(K)-strpos(K,':')-2)

nie umiem wytłumaczyć dlaczego, ale akurat to działa.

Z tego miejsca dziękuje za pomoc i ostatnim tchnieniem zapytam czy ktoś może poleca jakąś lekturę z zakresu podstawowego SQL-a na potrzeby Qgis ? Jeśli nie ma czegoś dedykowanego do Qgis, to może być to czysty SQL, ale lektura powinna być przyswajalna dla laika ;) ?



Wyślij zaproszenie do