join als bessere concat
Man möchte die Aufzählung bestimmten Werte in einer Tabelle bekommen.
der Erste Weg:
concat(select Tabelle.(Feld1+Feld2))
dabei bekommt man die Liste, kommagetrennt. Jetzt möchte ich, dass die Werte nicht nebeneinander sondern untereinander stehen:
replace(concat(select Tabelle.(Feld1+Feld2)),",","
")
---
So kriege ich eine tabellenähnliche Darstellung. Problematisch wird das ganze, wenn die Felder Texte mit Komma enthalten. Dann ersetzt "replace" diese Kommas auch durch Zeilenumbruch. Jetzt kommt "join"zum Einsatz:
join((select Tabelle.(Feld1+Feld2)),"
")
So kann ich alles untereinander ordnen, ohne mir gedanken über Kommas zu machen. Natürlich kann man damit auch adere Trennzeichen setzen.
Grüße
Leo
9 Antworten
-
Hallo Leo, danke für die Info. Ich habe allerdings noch nicht verstanden, was concat/join genau bewirkt und wofür man das gebrauchen könnte. Lässt sich das in ein paar Worten erklären?
-
Lieber Leo
Wieder mal ein sehr wertvoller Input, besten Dank dafür.
Bin ja noch gespannt, was es alles noch zu entdecken gibt :-)
Gruss Nik -
Hallo,
ist es irgendwie möglich ein Leerzeichen zwischen Feld 1 und Feld 2 einzufügen?
liebe Grüße.
-
Hallo, das sollte gehen, indem man das gewünschte Zeichen (oder auch mehrere) einfach als String zwischen die Felder setzt. Also, auf obiges Beispiel bezogen:
join((select Tabelle.(Feld1 + " " + Feld2)),"
")
-
Vielen Dank für den nützlichen Tipp! Ich habe es gleich verwenden können. Dazu habe ich den Code in ein Formelfeld eingebaut. Nachdem ich das Ganze in eine styled Anweisung gepackt habe werden die Zeilenumbrüche allerdings ignoriert:
styled(text(join((select Tabelle).Feld1, "
")), "pink", "", "warn")Gibt es dafür eine Lösung? Ich möchte später je nach Bedingung das Feld in einer anderen Farbe darstellen lassen.
-
Und wie bekomme ich ein "leeres" Feld weg, welches mit join entsteht, weil ein Feld in der Tabelle leer ist?
-
Hallo Olli,
---
let myArray:=for i in select TABELLENNAME.FELDNAME do
if i then i end
end;
join(myArray,"
")---
Leo
-
Leo, das sieht gut aus. Ich glaube es ist genau, was ich brauche. Vielen Dank!
-
join() hat aber auch einen Nachteil gegenüber concat(), denn es kann nur mit Arrays umgehen, welches ausschliesslich Elemente vom Typ text enthält - bei concat() besteht diese Einschränkung nicht.
Content aside
-
1
„Gefällt mir“ Klicks
- vor 4 JahrenZuletzt aktiv
- 9Antworten
- 4698Ansichten