【问题标题】:SQL Unable to ConcatenateSQL 无法连接
【发布时间】:2013-09-10 18:49:21
【问题描述】:

我正在使用 SQL Server 2008 R2 并尝试运行以下命令:

SELECT CustCity AS City, Concat(CustLastName, \', \', CustFirstName) AS Customer
FROM Customers
ORDER BY CustCity, Customer

我收到的错误信息是:

消息 102,第 15 级,状态 1,第 1 行
', \' 附近的语法不正确。

据我所知,Concat 应该是这样工作的,所以我不明白为什么这不起作用。

谁能帮忙?

【问题讨论】:

  • CONCAT 是 SQL Server 2012 中的NEW 函数,在早期版本中不存在
  • 还有为什么你有, \'而不是, '\'

标签: sql sql-server string sql-server-2008-r2 concatenation


【解决方案1】:

CONCAT()不是SQL Server 2008的功能。如果你想连接sql server中的数据,你应该使用+ sign

SELECT CustCity AS City, CustLastName + ', ' + CustFirstName AS Customer
FROM Customers
ORDER BY CustCity, Customer;

SQL Fiddle with Demo。如果你想包含\,那么你可以使用:

SELECT CustCity AS City, CustLastName + ' \ ' + CustFirstName AS Customer
FROM Customers
ORDER BY CustCity, Customer

Demo

【讨论】:

    【解决方案2】:

    你可以这样尝试:-

    SELECT CustCity AS City, CustLastName + '\' + CustFirstName AS Customer
    FROM Customers
    ORDER BY CustCity, Customer
    

    SQL SERVER 2008 中不存在 CONCAT 函数。

    【讨论】:

      【解决方案3】:

      可以肯定的是,您的单引号 ' 会导致问题。问题是 CONCAT 只存在于 SQL 2012 而不是 2008 中。

      如果您使用的是 SQL 2012,正确的语法应该是。

      Concat(CustLastName, '\', CustFirstName) AS Customer
      

      【讨论】:

      【解决方案4】:

      改为这样做:

      SELECT CustCity AS City, CustLastName + '\' + CustFirstName AS Customer
      FROM Customers
      ORDER BY CustCity, Customer
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-15
        • 1970-01-01
        • 2021-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多