我使用的是SQL Server 2012,它运行正常。但不幸的是,在SQL Server 2008中,它无法运行。
当我运行查询时,我收到此错误:
Msg 195,Level 15,State 10,Line 2' CONCAT'不是公认的 内置函数名称
SELECT CONCAT(CCYYMM, RIGHT(c.AMT001, 2)) ACCDAT,
CSTCOD,
PRPCOD,
c.RevenueAmount,
D.RevenueAllowance,
OUTLET,
AMTYTD,
ALWYTD,
MODCOD,
RECTYP,
RECCOD,
GRPCOD,
DEPCOD,
[CSTCTR],
[GLCODE]
FROM PMS.FMNASTBL
CROSS APPLY ( VALUES ( 'AMT001', AMT001 ) ) c (AMT001, RevenueAmount)
CROSS APPLY ( VALUES ( 'ALW001', ALW001 ) ) D (ALW001, RevenueAllowance);
答案 0 :(得分:0)
CONCAT()函数可从SQL Server 2012版开始提供。旧版本不支持它。
在旧版本中,请使用+
SELECT
cast(CCYYMM as varchar(10)+cast(RIGHT(C.AMT001,2) as varchar(2))as ACCDAT
,CSTCOD
,PRPCOD
,C.RevenueAmount
,D.RevenueAllowance
,OUTLET
,AMTYTD
,ALWYTD
,MODCOD
,RECTYP
,RECCOD
,GRPCOD
,DEPCOD
,[CSTCTR]
,[GLCODE]
FROM PMS.FMNASTBL
CROSS APPLY
(
VALUES
('AMT001',AMT001 )
) c (AMT001,RevenueAmount)
CROSS APPLY
(
VALUES
('ALW001',ALW001 )
) D (ALW001,RevenueAllowance)
答案 1 :(得分:0)
您可以使用“+”追加字符串,因为CONCAT()函数在早于2012的版本中不可用。