Se in un'istruzione SELECT sto selezionando una stringa concatenata che utilizza i valori della tabella o delle tabelle da cui seleziono, qual è il modo migliore per gestire i valori NULL per quei valori in modo che ho ancora la mia stringa? Come in, se sto selezionando Città, Stato e Nazione per un utente, e voglio un terzo campo che li concatena tutti:T-SQL: Il modo migliore per gestire i valori NULL nella concatenazione di stringhe
SELECT City, State, Country,
City + ', ' + State + ', ' + Country AS 'Location'
FROM Users
Tuttavia, 'Luogo' è NULL se uno dei tre campi è NULL (che si verifica ogni volta che l'utente non proviene dagli Stati Uniti).
mia soluzione attuale è questa:
SELECT City, State, Country,
City + ', ' + COALESCE(State + ', ', '') + Country AS 'Location'
FROM Users
Ma non ero sicuro se questo era solo un hack e se c'è un modo molto migliore per farlo. Pensieri?
'coalesce' è una pratica standard per questo. Nel tuo caso avresti solo bisogno di 'isnull' però. possibile duplicato di [SQL Server String Concatenation with Null] (http://stackoverflow.com/questions/2916791/sql-server-string-concatenation-with-null) btw – bzlm
@bzlm Oops! Hai ragione. Non sono sicuro del motivo per cui non è comparso quando ho cercato o inserito il titolo. Forse perché ho messo specificamente "t-sql". Voto per chiudere. È sempre un po 'strano votare per chiudere la tua domanda. Fa il solletico. – JoeCool
@bzlm La risposta alla domanda "duplicata" non mi eccita però. Non affronta i delimitatori tra le colonne. – RichardTheKiwi