Jeśli w instrukcji SELECT wybieram połączony ciąg, który używa wartości z tabel, z których wybieram, jaki jest najlepszy sposób obsługi NULL dla tych wartości, tak, że wciąż mam ciąg? Jak w, czy jestem wybierając miasto, województwo i kraj dla użytkownika i chcę trzecie pole, które je skleja wszystkie:T-SQL: Najlepszy sposób na obsługę wartości NULL w konkatenacji ciągów znaków
SELECT City, State, Country,
City + ', ' + State + ', ' + Country AS 'Location'
FROM Users
Jednak „Lokalizacja” jest NULL, jeśli któryś z tych trzech pól jest NULL (zdarza się, gdy użytkownik nie jest z USA).
Moje obecne rozwiązanie jest takie:
SELECT City, State, Country,
City + ', ' + COALESCE(State + ', ', '') + Country AS 'Location'
FROM Users
Ale nie byłem pewien, czy to był tylko siekać i jeśli jest to znacznie lepszy sposób to zrobić. Myśli?
'coalesce' jest standardową praktyką w tym zakresie. W twoim przypadku potrzebujesz tylko 'isnull'. możliwy duplikat [SQL Server String Concatenation with Null] (http://stackoverflow.com/questions/2916791/sql-server-string-concatenation-with-null) btw – bzlm
@bzlm Ups! Masz rację. Nie wiem, dlaczego nie pojawił się, gdy szukałem lub wszedł do tytułu. Być może dlatego, że konkretnie umieściłem "t-sql". Głosowanie w celu zamknięcia. Zawsze jest trochę dziwnie głosować, aby zamknąć własne pytanie. To łaskocze. – JoeCool
@bzlm Odpowiedź na pytanie "duplikat" mnie nie ekscytuje. Nie dotyczy ograniczników między kolumnami. – RichardTheKiwi