在一个中选择2列并合并它们

时间:2011-03-17 14:00:31

标签: sql sql-server-2005 select

是否可以在一个中选择2列并将它们组合起来?

示例:

select something + somethingElse as onlyOneColumn from someTable

13 个答案:

答案 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. 

对于此示例,如果column1NULL,则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