MySQL объединяет два столбца в один столбец
Я пытаюсь найти способ объединить два столбца в один, но продолжайте получать значение "0" в столбце вместо комбинации слов.
Это то, что я пробовал, а также другие:
SELECT column1 + column2 AS column3
FROM table;
SELECT column1 || column2 AS column3
FROM table;
SELECT column1 + ' ' + column2 AS column3
FROM table;
Может кто-нибудь, пожалуйста, дайте мне знать, что я делаю неправильно?
Ответы
Ответ 1
Я предполагаю, что вы используете MySQL, где оператор +
делает добавление, а также бесшумное преобразование значений в числа. Если значение не начинается с цифры, тогда преобразованное значение 0
.
Итак, попробуйте следующее:
select concat(column1, column2)
Два способа добавить пробел:
select concat(column1, ' ', column2)
select concat_ws(' ', column1, column2)
Ответ 2
Это работает для меня
SELECT CONCAT(column1, ' ' ,column2) AS newColumn;
Ответ 3
Попробуй, это работает для меня
select (column1 || ' '|| column2) from table;
Ответ 4
Это единственное решение, которое будет работать для меня, когда мне понадобится пространство между столбцами, которые будут объединены.
select concat(concat(column1,' '), column2)
Ответ 5
Для поклонников MySQL там мне нравится функция IFNULL()
. Другие ответы здесь предлагают аналогичную функциональность с функцией ISNULL()
в некоторых реализациях. В моей ситуации у меня есть столбец описаний NOT NULL
и столбец серийных чисел, который может быть NULL
Вот как я объединил их в один столбец:
SELECT CONCAT(description,IFNULL(' SN: ', serial_number),'')) FROM my_table;
Мои результаты показывают, что результаты конкатенирования строки с помощью NULL
приводят к NULL
. Я получаю альтернативную ценность в этих случаях.
Ответ 6
Если вы работаете Oracle
Затем:
SELECT column1 || column2 AS column3
FROM table;
ИЛИ
Если вы работаете на MySql Затем:
SELECT Concat(column1 ,column2) AS column3
FROM table;
Ответ 7
Я использовал этот способ и его лучший навсегда. В этом коде null также обрабатывается
SELECT Title,
FirstName,
lastName,
ISNULL(Title,'') + ' ' + ISNULL(FirstName,'') + ' ' + ISNULL(LastName,'') as FullName
FROM Customer
Попробуйте это...
Ответ 8
convert(varchar, column_name1) + (varchar, column_name)
Ответ 9
SELECT Collumn1 + '-' + Collumn2 AS FROM FullName TableName
Ответ 10
- например: столбцы с наборами чисел....
- При объединении столбцов с номерами вам нужно будет отбросить эти столбцы из типа #data в строку
- другой sql добавит эти числа вместе в те же столбцы/результат.
выберите бросок (shipperid as varchar) + '| '+ cast (empid как varchar)
от sales.Orders