Próbuję znaleźć sposób na połączenie dwóch kolumn w jedną, ale zamiast tego otrzymuję wartość „0” w kolumnie zamiast kombinacji słów.
Oto, czego próbowałem, a także inne:
SELECT column1 + column2 AS column3
FROM table;
SELECT column1 || column2 AS column3
FROM table;
SELECT column1 + ' ' + column2 AS column3
FROM table;
Czy ktoś mógłby mi powiedzieć, co robię źle?
Odpowiedzi:
Domyślam się, że używasz MySQL, w którym
+
operator dodaje, wraz z cichą konwersją wartości na liczby. Jeśli wartość nie zaczyna się od cyfry, to przekonwertowana wartość to0
.Więc spróbuj tego:
Dwa sposoby dodania spacji:
źródło
sql server 2005
i daje mi to błąd, jakIncorrect syntax near ')'.
Spróbuj tego, to działa dla mnie
źródło
To dla mnie praca
źródło
To jedyne rozwiązanie, które by się sprawdziło, gdy potrzebowałem spacji między scalanymi kolumnami.
źródło
Dla fanów MySQL podoba mi się ta
IFNULL()
funkcja. Inne odpowiedzi sugerują podobną funkcjonalność zISNULL()
funkcją w niektórych implementacjach. W mojej sytuacji mam kolumnę opisów, która jestNOT NULL
, oraz kolumnę numerów seryjnych, która może być.NULL
Oto jak je połączyłem w jedną kolumnę:Moje wyniki sugerują, że wyniki konkatenacji ciągu z
NULL
wynikami w aNULL
. W tych przypadkach uzyskiwałem alternatywną wartość.źródło
Jeśli pracujesz, to
Oracle
:LUB
Jeśli pracujesz na MySql, to:
źródło
Używałem tego sposobu i jest najlepszy na zawsze. W tym kodzie obsłużono również null
Spróbuj tego...
źródło
źródło
źródło