T-SQL: Beste Weg, um behandeln von NULL-Werten in string-Verkettung

Wenn in einer SELECT-Anweisung, die ich auswähle, eine verkettete Zeichenfolge, verwendet Werte aus der Tabelle(N) ich auswählen, was ist der beste Weg zu handhaben Null für diese Werte an, so dass ich noch meinen string? Wie in, wenn ich auswähle, Stadt, Bundesland und Land, die für einen Benutzer, und ich möchte ein drittes Feld, das verbindet Sie alle:

SELECT City, State, Country,
City + ', ' + State + ', ' + Country AS 'Location'
FROM Users

Jedoch, 'Location' ist NULL, wenn eines der drei Felder NULL ist (was passiert, wenn der Benutzer nicht aus den USA).

Meine aktuelle Lösung ist diese:

SELECT City, State, Country,
City + ', ' + COALESCE(State + ', ', '') + Country AS 'Location'
FROM Users

Aber ich war nicht sicher, ob dies nur ein hack und wenn es ist ein viel besserer Weg, es zu tun. Gedanken?

  • coalesce ist eine gängige Praxis für diese. In Ihrem Fall würde man nur benötigen isnull obwohl. mögliche Duplikate von SQL Server-String-Verkettung mit Null btw
  • Oops! Du hast Recht. Nicht sicher, warum es wiederum nicht, wenn ich gesucht oder eingegeben die Titel. Vielleicht, weil ich insbesondere put - "t-sql". Die Abstimmung zu schließen. Es ist immer ein wenig komisch Stimmen zu schließen Sie Ihre eigene Frage. Es kitzelt.
  • Die Antwort auf die "doppelte" Frage nicht mich zu erregen, wenn. Es werden keine Trennzeichen zwischen den Spalten.
  • Alt bedeutet nicht veraltet SO. Posten Sie Ihre Lust CTE gibt es auch. 🙂
  • CTE ist nur da, damit die Abfrage funktioniert.. und produzieren die beispielhafte Ausgabe. Die Abfrage ist wirklich der Teil ohne CTE.
  • Jetzt bist du zum Chor predigen. 🙂
  • Ich habe keine Ahnung, was WAK ist, aber es sieht ziemlich cool aus.

InformationsquelleAutor JoeCool | 2011-02-10
Schreibe einen Kommentar