2013-09-16 27 views
0

我想从我的表格中选择以下内容:是否可以将SQL查询中的字段合并到一个结果字段中?

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

使用这样的查询:

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

Users表具有两个VARCHAR(50)字段称为nameaddress。这是否可以像上面那样使用简单的单行T-SQL?当我运行上面的查询时,它返回-1受影响的记录。

+2

_When我运行上面的查询返回-1记录affected._我觉得这个给你,你正在寻找的答案。 – Taryn

+0

这实际上应该没有问题,只是在我的mssql中试过了,你确定你的表中有超过1条记录? – DrCopyPaste

+0

表中有600条记录,但是,我的例子很糟糕,我使用的字段实际上是'int'类型,这就是为什么我认为它不是正确的? – Jimbo

回答

0

解决

道歉的坏榜样 - 我工作中的数据类型与事实上int,这就是为什么串联不起作用 - 他们需要是CAST f IRST(感谢@bluefeet)

所以这工作:

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

确保你在'varchar'上使用长度 – Taryn

+0

@bluefeet这是很好的练习还是有实际的理由?谢谢 – Jimbo

+0

看到这个 - http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring-varchar-without-length.aspx – Taryn

2

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

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

甲骨文:SELECT 'Hello ' || name FROM USER

SQL服务器:SELECT 'Hello' + name FROM USER

+2

标签中提到的SQL Server – DrCopyPaste

+0

对不起,我忘了提及它的SQL Server 2012 – Jimbo

+1

不,你没有,我没有忘记我的意思:) – DrCopyPaste

相关问题