gpt4 book ai didi

sql - 关键字 'FOR' 附近的语法不正确

转载 作者:行者123 更新时间:2023-12-02 15:36:34 25 4
gpt4 key购买 nike

我写了下面提到的查询...

    DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)

select @cols = STUFF((SELECT distinct ',' + QUOTENAME(Name)
from dbo.[WorkflowInstanceParameter]
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,1,'')


Go
set @query = 'SELECT ' + @cols + '
from
(
select wi.Id,wip.Name, wip.stringValue
from FROM [ESP2_DEV1].[dbo].[WorkflowInstanceParameter] wip,
[WorkflowParameterGroupInstance] wpgi, [ESP2_DEV1].[dbo].[WorkflowInstance] wi,
dbo.WorkflowDefinition wd
where wip.[WorkflowParameterGroupInstanceId] = wpgi.id
and wpgi.[WorkflowInstanceId] =wi.id and
wi.workflowDefinitionId=wd.id
) x
pivot
(
max(stringValue)
for Name in (' + @cols + ')
) p '

execute(@query)

但它失败并出现错误“关键字‘FOR’附近的语法不正确”

谁能帮我这个????

最佳答案

这并不是这篇文章的真正答案,但如果你用谷歌搜索这个错误,它就是 HitTest 门的错误之一。

我遇到这个问题是因为我试图用@命名一个游标

declare @someName cursor for 

这行不通。

你需要做的:

declare someName cursor for 

相反。

我不清楚这种情况是否总是如此,因为我在网上看到很多使用 @ 的示例和很多不使用的示例,这令人困惑。我是 sqlserver 的新手,所以不确定这里是否发生了一些微妙的事情。然而,这肯定解决了我的错误。这一点在网上似乎没有太多记录,但是this other question记录了它,但由于某种原因在谷歌上很难找到它!

强加于名字的有趣事情!我正在将一个 oracle 模式转换为 sqlserver,并且不得不在所有地方添加 @ 变量,但显然不是这些变量!我猜那些做游标的人错过了那个 session 什么的!

关于sql - 关键字 'FOR' 附近的语法不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16477134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com