关键字“ with”附近的语法不正确。提议的解决方案不好

时间:2019-06-24 14:25:13

标签: sql-server

我收到以下错误:

  

关键字“ with”附近的语法不正确。如果此语句是公用表表达式,xmlnamespaces子句或更改跟踪上下文子句,则前一条语句必须以分号终止。

使用此SQL:

SELECT DISTINCT 
    Name, t1.[value] AS DateTime
FROM 
    BmaCare.Questionnaire qu
LEFT JOIN 
    BmaCare.Pregnancy pr ON qu.PregnancyId = pr.Id
CROSS APPLY 
    OPENJSON(qu.Data, '$.actions')
        WITH (
             entries NVARCHAR(MAX) '$.entries' AS JSON) j
CROSS APPLY 
    OPENJSON(j.entries)
        WITH (
              [key] NVARCHAR(100) '$.key',
              [value] NVARCHAR(100) '$.value') t1
WHERE
    t1.[key] = 'Admission.DateTime' OR t1.[key] = 'Discharge.DateTime' 
    AND t1.[value] IS NOT NULL
    AND pr.Uuid = '50E8835B-4ECE-4333-9B5B-DD6AF611989C'
ORDER BY 
    DateTime DESC

在此提供了一个解决方案:Incorrect syntax near the keyword 'with'. If this statement is a common table expression等于在每个WITH前面加一个分号。很简单的。当我在SQL字符串中这样做时,我得到了

  

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

如何使查询正常工作?

1 个答案:

答案 0 :(得分:0)

您的数据库必须具有兼容级别130(SQL Server 2016)或更高,才能使用IF time >=0800<=1700 ( DO NOTHING ) ELSE ( RUN CODE ) 。否则,您将收到语法错误,指示错误放置OPENJSON语句。