FOSSGIS-Talk-Liste Nachrichtensammlung, Band 148, Eintrag 1

Eckhard Schmidt eckhard.schmidt at aol.de
Sa Mai 1 16:55:33 CEST 2021


Hallo Bernd,
vielen Dank. - Ich habe es noch nicht ausprobiert, aber mir fällt Folgendes auf: fehlt hier....
 
if length( trim("Feld1") ) > 0, "Feld1" , "Feld2")
...nicht eine Klammer? (1 x 'Klammer auf'?). Wenn ja, wo müsste sie stehen? (oder bin ich auf dem Holzweg?)
Trotzdem vielen Dank und Gruß,Eckhard
 
 
********************************************
-----Ursprüngliche Mitteilung-----
Von: fossgis-talk-liste-request at fossgis.de
An: fossgis-talk-liste at fossgis.de
Verschickt: Sa, 1. Mai 2021 12:00
Betreff: FOSSGIS-Talk-Liste Nachrichtensammlung, Band 148, Eintrag 1

[...]

Message: 2
Date: Fri, 30 Apr 2021 15:36:31 +0200
From: Bernd Marcus <bmarcus at giswana.de>
To: fossgis-talk-liste at fossgis.de
Subject: [FOSSGIS-Talk] Übertragung zwischen Feldern; Umlaute
Message-ID: <19758190.efTT2urkXq at linux-9mbc>
Content-Type: text/plain; charset="iso-8859-1"

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