什么等于SQL Server中的Conc()

时间:2018-07-10 09:29:54

标签: sql sql-server tsql ms-access

我正在将MS Access查询转换为SQL Server。

我碰到了

SELECT 
    [R1EQ].CompanyId, [R1EQ].DateOnFile, 
    R1EQ.service_name, 
    Conc("DSPs", "ISPID", [ISPID], "R1EQ", "DateOnFile", [DateOnFile]) AS ColName

有人可以告诉我SQL Server中conc函数的等效功能吗?

3 个答案:

答案 0 :(得分:0)

似乎您正在寻找concat()函数:

SELECT [R1EQ].CompanyId, [R1EQ].DateOnFile, R1EQ.service_name, 
       CONCAT('DSPs', 'ISPID', [ISPID], 'R1EQ', 'DateOnFile', DateOnFile) AS ColName
. . . 

但是,这至少需要SQL Server 2012+,您必须使用+运算符

SELECT [R1EQ].CompanyId, [R1EQ].DateOnFile, R1EQ.service_name, 
       ('DSPs'+'ISPID'+ CAST([ISPID] AS VARCHAR(255) +'R1EQ' + 
        'DateOnFile', CAST(DateOnFile AS VARCHAR(255)
       ) AS ColName
 . . . 

答案 1 :(得分:0)

我们可以尝试在SQL Server中使用串联运算符:

SELECT
    [R1EQ].CompanyId,
    [R1EQ].DateOnFile,
    R1EQ.service_name,
    "DSPs" + "ISPID" + [ISPID] + "R1EQ" + "DateOnFile" + [DateOnFile] AS ColName
FROM yourTable;

答案 2 :(得分:0)

CONC()不是MS Access中的内置功能。它可以做任何事情,但是网上引用表明它可以连接字符串。请注意,它可能会做更多的事情,例如插入定界符。

等效的oeprator SQL Server是+,但是您需要非常小心。所有参数都必须是字符串。因此,您可能需要转换它们。开始的地方是:

SELECT [R1EQ].CompanyId, [R1EQ].DateOnFile, 
       R1EQ.service_name, 
      ('DSPs' + 'ISPID' + CONVERT(VARCHAR(255), ISPID), +
       'R1EQ' + 'DateOnFile',
       CONVERT(VARCHAR(2555), DateOnFile)  -- you might want a format
      ) AS ColName