是否可以将SQL查询中的字段组合到一个结果字段中?

时间:2013-09-16 13:55:08

标签: sql-server tsql sql-server-2012

我想从我的表中选择以下内容:

你好詹姆斯,你的地址是1路。

使用如下查询:

SELECT ('Hello ' + name + ', your address is ' + address) AS result FROM Users

Users表有两个名为nameaddress的varchar(50)字段。这是否可以使用如上所述的简单的单行T-SQL?当我运行上面的查询时,它会返回 -1个受影响的记录。

2 个答案:

答案 0 :(得分:2)

这取决于您使用的RDMBS,语法可能不同。以下是一些例子:

MySQL:SELECT CONCAT('Hello ',name) FROM USER

Oracle:SELECT 'Hello ' || name FROM USER

SQL Server:SELECT 'Hello' + name FROM USER

答案 1 :(得分:0)

<强>解决

为坏例子道歉 - 我正在使用的数据类型实际上是int,这就是串联无法正常工作的原因 - 他们需要首先进行CAST(感谢@bluefeet)

所以这很有效:

SELECT ('Hello ' + CAST(name AS varchar) + ', your address is ' + CAST(address AS varchar)) AS result FROM Users