[FOSSGIS-Talk] Übertragung zwischen Feldern; Umlaute
Bernd Marcus
bmarcus at giswana.de
Fr Apr 30 15:36:31 CEST 2021
Hallo Eckhard,
etwas kürzer als der Ausdruck, den Claas dir vorgeschlagen hat:
coalesce("Feld2", "Feld1")
Übersetzt bedeutet dies: wenn "Feld2" einen Wert aufweist, wird der
Wert von "Feld2" genommen; weist "Feld2" jedoch NULL auf, wird auf
"Feld1" zurückgegriffen.
Wichtig: dies funktioniert nur, wenn das 'leer' deiner Anfrage mit
NULL gleichzusetzen ist.
Handelt es sich um Text-Spalten, so solltest du, wie von Claas
vorgeschlagen, eine Bedingung nutzen. Ob CASE oder IF ist reine
Geschmackssache:
if length( trim("Feld1") ) > 0, "Feld1" , "Feld2")
Erklärung: wenn die Länge des um Leerzeichen bereinigten "Feld1"
größer 0, dann Wert von "Feld1" sonst Wert von "Feld2".
Der TRIM Befehl besitzt den Vorteil, dass man sich keinen Kopf drum
machen muss, ob ein leer erscheinendes Textfeld nicht evtl. doch ein
oder mehrere Leerzeichen aufweist.
Der IF Ausdruck funktioniert natürlich auch bei NULL Werten, denn
NIx gibt Nix zurück, also NULL und somit wird die Bedingung von der
Länge größer 0 nicht erfüllt.
Euch eine gute Zeit
Bernd Marcus
__________________________________
GISwana - Datentektonik
Am Steneberg 10 | D-37133 Friedland
T: +49 (0)5504 949 844 7
M: +49 (0)176 816 991 64
@: bmarcus at giswana.de
U: https://www.giswana.de/
Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste