Mit*_*tti 96 t-sql sql-server sql-server-2008
我CONCAT
在SQL Server 2008 R2中寻找一个功能.我找到了这个功能的链接.但是当我使用此函数时,它会出现以下错误:
消息195,级别15,状态10,行
7'CONCAT'不是公认的内置函数名称.
该CONCAT
功能是否存在于SQL Server 2008 R2中?
如果没有,我如何连接SQL Server 2008 R2中的字符串?
ta.*_*.is 64
CONCAT
是SQL Server 2012的新增功能.您提供的链接使其清晰,它不是早期版本的功能,包括2008 R2.
它是SQL Server 2012的一部分,可以在文档树中看到:
SQL Server 2012
Product Documentation
Books Online for SQL Server 2012
Database Engine
Transact-SQL Reference (Database Engine)
Built-in Functions (Transact-SQL)
String Functions (Transact-SQL)
Run Code Online (Sandbox Code Playgroud)
编辑 Martin Smith帮助指出SQL Server提供了ODBC CONCAT
功能的实现.
vas*_*987 41
我建议你在连接它们之前先插入所有列
cast('data1' as varchar) + cast('data2' as varchar) + cast('data3' as varchar)
Run Code Online (Sandbox Code Playgroud)
这应该适合你.
kuk*_*lei 23
如前所述,在SQL Server 2012之前不支持CONCAT.但是,您可以根据建议使用+运算符连接.但请注意,如果第一个操作数是一个数字,则此运算符将抛出错误,因为它认为将添加而不是连接.要解决此问题,只需在前面添加''.例如
someNumber + 'someString' + .... + lastVariableToConcatenate
Run Code Online (Sandbox Code Playgroud)
会引发错误但是'' + someNumber + 'someString' + ......
会工作得很好.
此外,如果要连接两个数字,请确保在它们之间添加"",就像这样
.... + someNumber + '' + someOtherNumber + .....
Run Code Online (Sandbox Code Playgroud)
SQL Server 2012 CONCAT 函数的替换近似值中的 NULL 安全下降
SQL Server 2012:
SELECT CONCAT(data1, data2)
PRE SQL 2012(两种解决方案):
SELECT {fn CONCAT(ISNULL(data1, ''), ISNULL(data2, ''))}
SELECT ISNULL(CAST(data1 AS varchar(MAX)), '') + ISNULL(CAST(data2 AS varchar(MAX)), '')
这两个解决方案整理了其他发帖者(包括@Martin Smith、@Svish 和@vasin1987)提出的几个优秀答案和警告。
这些选项添加NULL
到''
(空字符串)强制转换以进行安全NULL
处理,同时考虑到+
与特定操作数有关运算符。
请注意,ODBC Scaler Function解决方案仅限于 2 个参数,而+
运算符方法可根据需要扩展为多个参数。
还要注意@Swifty 确定的潜在问题,varchar
这里由varchar(MAX)
.
归档时间: |
|
查看次数: |
257767 次 |
最近记录: |