我正在使用SQL Server 2012,它工作正常。但是SQL Server 2008并没有起作用。当我运行查询时,我收到此错误:

时间:2016-08-05 07:53:15

标签: sql sql-server

我使用的是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);

2 个答案:

答案 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的版本中不可用。