是否可以在一个中选择2列并将它们组合起来?
示例:
select something + somethingElse as onlyOneColumn from someTable
答案 0 :(得分:28)
是,
SELECT CONCAT(field1, field2) AS WHOLENAME FROM TABLE
WHERE ...
将导致数据集如:
WHOLENAME
field1field2
答案 1 :(得分:24)
(SELECT column1 as column FROM table )
UNION
(SELECT column2 as column FROM table )
答案 2 :(得分:23)
是的,就像你做的那样:
select something + somethingElse as onlyOneColumn from someTable
如果你查询了数据库,你就会得到正确的答案。
你要求表达的是什么?一个非常简单的表达式只是一个列名,一个更复杂的表达式可以包含公式等。
答案 3 :(得分:12)
是的,只要数据类型兼容,就可以。如果不是,请使用CONVERT()或CAST()
SELECT firstname + ' ' + lastname AS name FROM customers
答案 4 :(得分:11)
上述答案都不适合我,但这确实......
SELECT CONCAT(Cust_First, ' ', Cust_Last) AS CustName FROM customer
答案 5 :(得分:6)
+
运算符应该可以正常使用。但请记住,如果其中一列为null或没有任何值,它将为您提供NULL
结果。相反,将+
与函数COALESCE
合并,您将被设置。
以下是一个例子:
SELECT COALESCE(column1,'') + COALESCE(column2,'') FROM table1.
对于此示例,如果column1
为NULL
,则column2
的结果将显示,而不是简单的NULL
。
希望这有帮助!
答案 6 :(得分:1)
是的,您可以轻松地组合列,例如连接字符数据:
select col1 | col 2 as bothcols from tbl ...
或添加(例如)数字数据:
select col1 + col2 as bothcols from tbl ...
在这两种情况下,您最终会得到一列bothcols
,其中包含组合数据。如果列不兼容,则可能必须强制使用数据类型。
答案 7 :(得分:1)
您的语法应该有效,可能会在列之间添加空格,如
SELECT something + ' ' + somethingElse as onlyOneColumn FROM someTable
答案 8 :(得分:1)
如果其中一列是我经历过的数字,那么oracle会将'+'视为sum运算符而不是concatenation。
例如:
select (id + name) as one from table 1; (id is numeric)
抛出无效数字异常
在这种情况下你可以||连接的运算符。
select (id || name) as one from table 1;
答案 9 :(得分:0)
我希望这个答案有所帮助:
SELECT (CAST(id AS NVARCHAR)+','+name) AS COMBINED_COLUMN FROM TABLENAME;
答案 10 :(得分:0)
select column1 || ' ' || coloumn2 as whole_name FROM tablename;
在这里||是concat运算符,用于在||内的单个列和('')中对它们进行连接。用于两个列之间的间隔。
答案 11 :(得分:0)
SELECT firstname || ' ' || lastname FROM users;
答案 12 :(得分:0)
为了完成@Pete Carter 的回答,我会在 UNION 上添加一个“ALL”(如果您需要保留重复的条目)。
(SELECT column1 作为列 FROM table )
联合所有
(SELECT column2 作为列 FROM table )
DROP TABLE IF EXISTS #9
CREATE TABLE #9
(
USER1 int
,USER2 int
)
INSERT INTO #9
VALUES(1, 2), (1, 3), (1, 4), (2, 3)
------------------------------------------------
(SELECT USER1 AS 'column' from #9)
UNION ALL
(SELECT USER2 AS 'column' from #9)
然后返回:Result