【问题标题】:Incorrect syntax near 'PIVOT''PIVOT' 附近的语法不正确
【发布时间】:2014-02-24 08:13:25
【问题描述】:

我正在运行 SQL Server 2008 R2。我正在尝试构建一个从如下结构的表中获取数据的表:

company | ded_id | descr

10          1      MEDINS
10          2      LIFE
10          3      PENSN
...
10         50      DOMREL

我需要建立一个临时表,格式如下:

company | DESC1 | DESC2 | DESC3 ... | DESC50
10        MEDINS  LIFE    PENSN       DOMREL

所以我构建了以下查询:

    SELECT *
    FROM (
    SELECT company,'DESC'+CAST(ded_id as VARCHAR(2)) AS DedID,descr
    FROM deduction     
    ) deds
    PIVOT (MAX(descr)FOR DedID IN([DESC1],[DESC2],[DESC3])) descs

所以运行它会出现以下错误:

消息 325,第 15 级,状态 1,第 6 行 “PIVOT”附近的语法不正确。您可能需要将当前数据库的兼容级别设置为更高的值才能启用此功能。请参阅 ALTER DATABASE 的 SET COMPATIBILITY_LEVEL 选项的帮助。

我仔细检查了数据库的兼容性级别,它已经​​设置为 100,所以这不是问题。您能想到任何其他可能导致此行为的设置吗?

【问题讨论】:

  • 我的 SQL Server 2008 R2 SP1 (10.50.2500) 服务器无法重现此错误;查询工作正常并产生所需的输出。

标签: sql tsql sql-server-2008-r2


【解决方案1】:

我遇到了同样的问题...在 sql 查询中使用“Pivot”、“Format”和“Convert”命令时。

对我有用的一件事是 而不是导入 sqlite 我导入了pyodbc 所以我的代码改变了

来自: import sqlite3 conn = sqlite3.connect('/Users/****/Desktop/****.sqlite')

到: import pyodbc conn = pyodbc.connect('Driver={SQL Server};''Server=@@@@;''Database=****;' 'Trusted_Connection=yes;')

【讨论】:

    【解决方案2】:

    我遇到了同样的错误('PIVOT'附近的语法不正确...)并通过更改数据库属性的选项部分中的兼容性级别来解决它。

    我还找到了如何编写兼容性级别更改的脚本:

    ALTER DATABASE database_name   
    SET COMPATIBILITY_LEVEL = 100
    

    (见https://msdn.microsoft.com/en-us/library/bb510680.aspx?f=255&MSPPError=-2147217396

    【讨论】:

      【解决方案3】:

      此类问题的可能原因是您从其他可能运行旧版本 SQL Server 的源导入数据库。不管怎样,你有办法摆脱它。请按照以下步骤操作:

      1. 右键单击数据库(例如 Northwind)。
      2. 点击“属性”。
      3. 点击左侧窗格中“选择页面”部分下的“选项”。
      4. 从右侧的“兼容性级别”下拉列表中根据您的安装选择适当的数据库版本。
      5. 保存更改并立即尝试。

      下面是属性窗口的截图供您参考。

      【讨论】:

      • 我在 SQL SERVER 2012 上,在 OPtions 中没有看到“选择页面”部分
      • 在上面的截图中,左侧列表中有“选项”。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-12
      • 2013-12-16
      • 1970-01-01
      • 2018-08-14
      • 2011-03-11
      • 2014-02-16
      • 2017-01-11
      相关资源
      最近更新 更多