Выберите 2 столбца в одном и объедините их - PullRequest
32 голосов
/ 17 марта 2011

Можно ли выбрать 2 столбца в одном и объединить их?

Пример:

select something + somethingElse as onlyOneColumn from someTable

Ответы [ 11 ]

28 голосов
/ 17 марта 2011

Да,

SELECT CONCAT(field1, field2) AS WHOLENAME FROM TABLE
WHERE ...

приведет к тому, что набор данных будет выглядеть так:

WHOLENAME
field1field2
26 голосов
/ 30 июня 2012
(SELECT column1 as column FROM table )
UNION 
(SELECT column2 as column FROM table )
24 голосов
/ 17 марта 2011

Да, как и вы:

select something + somethingElse as onlyOneColumn from someTable

Если бы вы запросили базу данных, вы бы получили правильный ответ.

Что происходит, вы спрашиваете выражение. Очень простое выражение - это просто имя столбца, более сложное выражение может содержать формулы и т. Д.

13 голосов
/ 17 марта 2011

Да, это возможно, если типы данных совместимы.Если это не так, используйте CONVERT () или CAST ()

SELECT firstname + ' ' + lastname AS name FROM customers
12 голосов
/ 20 февраля 2014

Ни один из приведенных выше ответов не сработал для меня, но это сработало ...

SELECT CONCAT(Cust_First, ' ', Cust_Last) AS CustName FROM customer
6 голосов
/ 14 мая 2012

Оператор + должен сделать трюк просто отлично.Имейте в виду, что если один из столбцов имеет нулевое значение или не имеет никакого значения, он даст вам NULL результат.Вместо этого объедините + с функцией COALESCE, и все будет готово.

Вот пример:

SELECT COALESCE(column1,'') + COALESCE(column2,'') FROM table1. 

Для этого примера, если column1 равно NULL, то вместо * 1013 будут отображаться результаты column2*.

Надеюсь, это поможет!

1 голос
/ 23 августа 2013

если один из столбцов является числом, которое я испытал, оракул будет считать «+» оператором суммы вместо конкатенации.

например:

select (id + name) as one from table 1; (id is numeric) 

выдает исключение недопустимого числа

, в таком случае вы можете ||оператор конкатенации.

select (id || name) as one from table 1;
1 голос
/ 17 марта 2011

Ваш синтаксис должен работать, возможно, добавьте пробел между столбцами, как

SELECT something + ' ' + somethingElse as onlyOneColumn FROM someTable

1 голос
/ 17 марта 2011

Да, вы можете достаточно легко комбинировать столбцы, такие как объединение символьных данных:

select col1 | col 2 as bothcols from tbl ...

или добавление (например) числовых данных:

select col1 + col2 as bothcols from tbl ...

В обоих этих случаях выв конечном итоге один столбец bothcols, который содержит объединенные данные.Возможно, вам придется привести тип данных, если столбцы несовместимы.

0 голосов
/ 09 ноября 2018

select column1 || ' ' || coloumn2 as whole_name FROM tablename; здесь || является оператором concat, используемым для их конкатенации в одиночном столбце и ('') внутри || используется для пространства между двумя колоннами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...