Sql 语法不是一个函数
以下是我的SQL语句:Sql 语法不是一个函数,sql,sql-server-2008,Sql,Sql Server 2008,以下是我的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.Crea
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)
将其放入[]中,如[N].[File\u 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)
试试这个:
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
我看到的第一个问题是,您不能使用SELECT INDER WHERE语句中定义的别名(因此您不能使用Loc_Id,您必须使用Loc.Id)
让我知道这是否适用于您,或者您仍然会遇到错误
我还注意到您使用了N.File_Id和N.Id,您确定表中有这两列吗?你能发布你的模式吗?你能发布整个SQL吗?很难说出您在这里尝试执行的操作。请添加更多信息,例如完整的SQL语句、您尝试实现的内容、您已经尝试的内容……这是您的完整SQL吗?如果是这样,请从零件中选择和。如果没有,请确保在from语句中为负数重复定义别名(N)。好的,我会修改的。对不起,我注意到您使用了N.File_Id和N.Id,您确定表中同时包含这两列吗?你能发布你的模式吗?你的代码和注释都有错误。不能在同一个括号内使用表名和列,它必须是[N].[File_Id],但不需要这样做。此外,您不能在where语句中使用Loc_Id。很抱歉括号错误。我已经更新了。它是NLoc.Loc\u Id还是Loc.Id还是一个问题?@NiladriBiswas因为他加入了这些列,所以这两个列都有相同的值,所以他使用这两个列中的哪一个并不重要。是的..你是对的。。。我有点不对劲,应该搬出公司。屏幕现在。。。需要好好休息一下。