SQL Server中的连接问题

4es*_*est 2 sql sql-server concat concatenation sql-server-2008

当我想CONCATENATE在SQL Server中使用时:

CONCAT(year(dateadd(year, -1, left(t1.[FQuater], 4))), right(t1.[FFQuater], 2))
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

在此输入图像描述

FQuaterVarchar数据类型.

sag*_*agi 7

只需使用+旧版SQL Server上提供的版本,而不是concat只能从SQL Server 2012获得:

 year(dateadd(year,-1,left(t1.[FQuater],4))) +''+ right(t1.[FFQuater],2)
Run Code Online (Sandbox Code Playgroud)

避免空值(如果可能)

 isnull(year(dateadd(year,-1,left(t1.[FQuater],4))),'') +''+ isnull(right(t1.[FFQuater],2),'')
Run Code Online (Sandbox Code Playgroud)

编辑:正如@ ravish.hacker所提到的,你可以这样做:

 isnull(year(dateadd(year,-1,left(t1.[FQuater],4))),'') +''+ isnull(right(t1.[FFQuater],2),'') + ' '
Run Code Online (Sandbox Code Playgroud)