Wie zum verketten von strings und Kommas in SQL Server?
Ich bin relativ neu in MSSQL, also sorry, wenn die Frage vielleicht klingt trivial. Ich möchte zum verketten mehrerer Felder mit einem Trennzeichen ,
. Jedoch, wenn das Feld leer ist, werden die zusätzlichen ,
werden in der ergebniszeichenfolge enthalten als gut. So gibt es eine einfache Möglichkeit dieses problem zu lösen? Zum Beispiel,
SELECT VRI.Street_Number_and_Modifier + ',' +
VRI.Street_Direction + ',' +
VRI.Street_Name + ',' +
VRI.Street_Direction + ',' +
VRI.Street_Suffix + ',' +
VRI.Street_Post_Direction + ',' +
VRI.Unit
FROM View_Report_Information_Tables VRI
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn die Spalten leer sind anstelle von null, können Sie versuchen, diese:
Incorrect syntax near '.'
eine Idee?Diese modifizierte version der Lamak die Griffe, NULL oder strings mit nur space/leer:
War ich in der Lage, get it to work mit einem etwas anderen Ansatz. Setzen Sie die Kommas am Anfang jedes Feld und dann entfernen des ersten mit der Funktion STUFF für mich gearbeitet:
Versuchen Sie dies:
NULL
ist, sollten Sie nicht erhalten keine zusätzlichen Kommas.,,Mae Rose,,Dr,,
NULL
wenn das Feld leer ist, sind Sie immer eine ".Kurze oder lange Antwort?
Kurze Antwort - nicht. Dies ist eine Formatierung Ausgabe, nicht ein Datenbank Problem.
Lange Antwort - Wenn Sie verketten einer Zeichenfolge und einem null-Wert in sql server, ist das Ergebnis null. So können Sie Kombinationen von ISNULL
Verwenden Sie die select case when IsNull(Feldname, ")= " oder ltrim(rtrim ("fieldname"))=") Then ... Else... end +...
Edit:
Geschrieben wurde von Android mobile.
Unter Ihrem Beispiel.
Die folgenden übersetzungen (aus dem deutschen) gelten, FYI:
Ist hier der Beispiel code:
Könnten Sie die
ISNULL(field + ',', '')
Stimme ich völlig mit Jamiec die kurze Antwort.
Ansonsten würde ich schauen eine böse Lösung mit REPLACE([concat], ',,', ',') überall, wo Sie verketten zwei Spalten, und dann herauszufinden, wie man Kommas trimmen von Anfang und Ende des Strings, wo die ersten und letzten Spalten leer. Sehr sehr chaotisch.
Wollte sehen, ob ich es bekommen kann, ohne über den FALL, aber nicht konnte. Ein langatmiges Weg von mir:
Für SQL 2008+
Verwenden
ISNULL(Colmn1 + ', ', ")
Wird immer mit einem führenden Komma am Ende, so müssen Sie es behandeln.
Beispiel:
Oder wir könnten diesen Ansatz anders herum und die Verwendung der Funktion STUFF zu entfernen, Beginn Komma, das sieht sauberer aus, Beispiel:
Für SQL 2012+ konnten wir mit Hilfe der CONCAT-Funktion und entfernen Sie Anfang Komma mit SACHEN ähnlich zu unserem vorherigen Beispiel, aber die Vermeidung von ISNULL:
Für SQL 2017+ CONCAT_WS eingeführt wurde, wo Sie concatinate/join mehrere string-Spalten mit Trennzeichen angegeben wird in das erste argument der Funktion:
MS-Dokumente CONCAT_WS
MS Doc Beispiel:
Diese wird nicht fügen Sie keine Kommas, wenn null-strings