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

pri*_*inn 33 sql select sql-server-2005

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

例:

select something + somethingElse as onlyOneColumn from someTable

Dav*_*Fox 30

是,

SELECT CONCAT(field1, field2) AS WHOLENAME FROM TABLE
WHERE ...
Run Code Online (Sandbox Code Playgroud)

将导致数据集如下:

WHOLENAME
field1field2
Run Code Online (Sandbox Code Playgroud)


小智 30

(SELECT column1 as column FROM table )
UNION 
(SELECT column2 as column FROM table )
Run Code Online (Sandbox Code Playgroud)


gjv*_*amp 28

是的,就像你做的那样:

select something + somethingElse as onlyOneColumn from someTable
Run Code Online (Sandbox Code Playgroud)

如果你查询了数据库,你就会得到正确的答案.

你要求表达的是什么?一个非常简单的表达式只是一个列名,一个更复杂的表达式可以包含公式等.


Sup*_*Dud 13

是的,只要数据类型兼容,就可以.如果不是,请使用CONVERT()或CAST()

SELECT firstname + ' ' + lastname AS name FROM customers
Run Code Online (Sandbox Code Playgroud)


小智 12

上述答案都不适合我,但这确实......

SELECT CONCAT(Cust_First, ' ', Cust_Last) AS CustName FROM customer
Run Code Online (Sandbox Code Playgroud)


小智 6

+运营商应该做的伎俩就好了.但请记住,如果其中一列为null或没有任何值,它将为您提供NULL结果.相反,+与功能结合,COALESCE你将被设置.

这是一个例子:

SELECT COALESCE(column1,'') + COALESCE(column2,'') FROM table1. 
Run Code Online (Sandbox Code Playgroud)

对于这个例子,如果column1NULL,则结果column2将显示,而不是简单NULL.

希望这可以帮助!


小智 5

为了完成@Pete Carter的答案,我会在UNION上添加一个“ALL”(如果您需要保留重复的条目)。

(选择列 1 作为表中的列)

联合所有

(选择列2作为表中的列)

 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)
Run Code Online (Sandbox Code Playgroud)

然后将返回:结果