Можно ли выбрать 2 столбца только в одном и объединить их?
Пример:
select something + somethingElse as onlyOneColumn from someTable
Можно ли выбрать 2 столбца только в одном и объединить их?
Пример:
select something + somethingElse as onlyOneColumn from someTable
Да, как и вы:
select something + somethingElse as onlyOneColumn from someTable
Если вы запросили базу данных, вы бы получили правильный ответ.
Что происходит, вы просите выражение. Очень простое выражение - это просто имя столбца, более сложное выражение может содержать в себе формулы и т.д.
Да,
SELECT CONCAT(field1, field2) AS WHOLENAME FROM TABLE
WHERE ...
приведет к набору данных, например:
WHOLENAME
field1field2
(SELECT column1 as column FROM table )
UNION
(SELECT column2 as column FROM table )
Да, возможно, если типы данных совместимы. Если это не так, используйте CONVERT() или CAST()
SELECT firstname + ' ' + lastname AS name FROM customers
Ни один из вышеперечисленных ответов не работал у меня, но это...
SELECT CONCAT(Cust_First, ' ', Cust_Last) AS CustName FROM customer
Оператор +
должен делать трюк просто отлично. Помните, что если один из столбцов имеет значение null или не имеет значения, он даст вам результат NULL
. Вместо этого объедините +
с функцией COALESCE
, и вы будете установлены.
Вот пример:
SELECT COALESCE(column1,'') + COALESCE(column2,'') FROM table1.
В этом примере, если column1
- NULL
, тогда результаты column2
будут отображаться вместо простого NULL
.
Надеюсь, это поможет!
Да, вы можете объединить столбцы достаточно легко, например, конкатенацию символьных данных:
select col1 | col 2 as bothcols from tbl ...
или добавление (например) числовых данных:
select col1 + col2 as bothcols from tbl ...
В обоих случаях вы получаете один столбец bothcols
, который содержит комбинированные данные. Возможно, вам придется принудительно использовать тип данных, если столбцы несовместимы.
Ваш синтаксис должен работать, возможно, добавить пробел между такими типами, как
SELECT something + ' ' + somethingElse as onlyOneColumn FROM someTable
если один из столбцов - это число, которое я испытал, оракул будет думать '+' как оператор суммы вместо конкатенации.
например:
select (id + name) as one from table 1; (id is numeric)
вызывает недопустимое числовое исключение
в таком случае вы можете || оператор, который является конкатенацией.
select (id || name) as one from table 1;
Посмотрите на некоторые примеры ЗДЕСЬ
Надеюсь, этот ответ поможет:
SELECT (CAST(id AS NVARCHAR)+','+name) AS COMBINED_COLUMN FROM TABLENAME;
select column1 || ' ' || column2 as whole_name FROM tablename;
Здесь ||
это оператор concat, используемый для объединения их в один столбец и (''
) внутри ||
используется для пространства между двумя столбцами.