[英]error occured : “Cannot call methods on nvarchar.”
I wrote a query to find answers related to a specific question, but I received this error when runing this code. 我写了一个查询来查找与特定问题相关的答案,但是在运行此代码时收到了此错误。
Cannot call methods on nvarchar
无法在nvarchar上调用方法
select Posts.Id as Answer, ParentId as question, User.DisplayName as Answerer
FROM Posts
INNER JOIN Users ON Posts.OwnerUserId = Users.Id
WHERE
ParentId in (SELECT Posts.Id
FROM Posts
INNER JOIN PostTags ON Posts.Id = PostTags.PostId
INNER JOIN Tags ON PostTags.TagId = Tags.id
INNER JOIN Users ON Posts.OwnerUserId = Users.id
INNER JOIN PostTypes ON Posts.PostTypeId = PostTypes.Id
WHERE Tags.TagName in
(select
num.TagName as Tag
from
(select TagName
from
Tags, PostTags, Posts
where Tags.Id = PostTags.TagId and Posts.Id = PostId
and Posts.CreationDate < '2015-04-20'
and Posts.CreationDate > '2015-01-01'
group by TagName) as rate
INNER JOIN
(select TagName
from Tags, PostTags, Posts
where Tags.Id = PostTags.TagId and Posts.Id = PostId
group by TagName
having count(PostId) > 8000)as num
ON rate.TagName = num.TagName
)
AND Posts.AnswerCount > 1
AND Posts.AcceptedAnswerId is not null
AND Posts.Score > 0
AND Posts.PostTypeId = 1 -- PostTypeId = 1 -> Question
AND Posts.CommunityOwnedDate is null
)
AND Posts.PostTypeId = 2 -- -> Answers
I think the problem is ParentId
, but I do not understand what is wrong. 我认为问题是
ParentId
,但我不明白出了什么问题。
You have a reserved word User
in your query: 您的查询中有一个保留字
User
:
select Posts.Id as Answer, ParentId as question, User.DisplayName as Answerer
选择Posts.Id作为Answer,ParentId作为问题,User.DisplayName作为Answerer
You will need to modify it to be [User].DisplayName
您需要将其修改为
[User].DisplayName
Here is a great resource on reserved words in SQL: https://www.drupal.org/node/141051 这是SQL中保留字的一个很好的资源: https : //www.drupal.org/node/141051
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.