语法不是函数[关闭]

Posted

技术标签:

【中文标题】语法不是函数[关闭]【英文标题】:Syntax is not a function [closed] 【发布时间】:2012-08-31 11:36:05 【问题描述】:

这是我的 SQL 语句:

 N.File_Id = ServerFiles.Id WHERE [...]

'File_Id' 以粉红色突出显示,无论如何我可以覆盖它吗?我认为这就是我的 SQL 没有返回结果集的原因。

谢谢

修改代码:

SELECT 
   N.Id, NLoc.N_Id, Loc.Id as Loc_Id, 
   CAST(N.Text AS TEXT) as Text, FilePath, 
   CAST(N.Title AS TEXT) as Title, N.CreatD as RegDate
FROM 
   NLoc 
JOIN N ON NLoc.Not_Id = N.Id 
JOIN Loc ON NLoc.Loc_Id = Loc.Id
JOIN ServerFiles ON N.File_Id = ServerFiles.Id 
WHERE 
    Loc_Id IN (1)

【问题讨论】:

你能把整个SQL贴出来吗?在这里很难说出你想做什么。 请添加更多信息,例如您的完整 SQL 语句、您想要实现的目标、您已经尝试过的... 那是你的完整 SQL 吗?如果是这样,您缺少 Select 和 From 部分。如果不确定,请确保在 from 语句中定义别​​名 (N)。 为负面的代表感到高兴。好的会修改的。对不起。 我注意到你使用了 N.File_Id 和 N.Id,你确定你的表中有这两个列吗?您可以发布您的架构吗? 【参考方案1】:

试试这个:

SELECT 
    N.Id
    , NLoc.N_Id
    , Loc.Id as Loc_Id
    , CAST(N.Text AS TEXT) as Text
    , FilePath
    , CAST(N.Title AS TEXT) as Title
    , N.CreatD as RegDate 

FROM NLoc 
     JOIN N  ON NLoc.Not_Id=N.Id 
     JOIN Loc ON NLoc.Loc_Id=Loc.Id 
     JOIN ServerFiles ON N.File_Id=ServerFiles.Id 
WHERE Loc.Id = 1

我看到的第一个问题是您不能在 WHERE 语句中使用 SELECT 中定义的别名(因此您不能使用 Loc_Id,您必须使用 Loc.Id)。

让我知道这是否适合您,否则您仍然会收到错误。

我还注意到您使用 N.File_Id 和 N.Id,您确定您的表中有这两个列吗?您可以发布您的架构吗?

【讨论】:

是 NLoc.Loc_Id 还是 Loc.Id 又是一个问题? @NiladriBiswas 因为他加入了这些列,所以两者都将具有相同的值,所以他使用这两者中的哪一个并不重要。 是的..你说得对...我出了点问题..应该退出比赛。屏幕现在...需要严重打破。【参考方案2】:

将其放在 [ ] 中,例如 [N].[File_Id]

SELECT 
N.Id, NLoc.N_Id, 
Loc.Id as Loc_Id, CAST(N.Text AS TEXT) as Text, 
FilePath, CAST(N.Title AS TEXT) as Title,
 N.CreatD as RegDate 

 FROM NLoc 
 JOIN N  ON NLoc.Not_Id=N.Id 
 JOIN Loc ON NLoc.Loc_Id=Loc.Id 
 JOIN ServerFiles ON [N].[File_Id]=ServerFiles.Id 
 WHERE NLoc.Loc_Id IN (1) -- or Loc.Id IN (1) 

【讨论】:

您的代码和评论有错误。您不能在同一个括号内使用表名和列,它必须是 [N].[File_Id],但没有必要这样做。此外,您不能在 where 语句中使用 Loc_Id。 抱歉括号错误。我已经更新了。

以上是关于语法不是函数[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在构造函数中设置默认参数?语法[关闭]

在 python 中,将函数用作类的属性的正确语法是啥? [关闭]

关于解析函数语法的问题? [关闭]

这个 sql 命令有啥语法错误? [关闭]

.focus() 不是函数[关闭]

友元函数是不是违反封装? [关闭]