Sql 无法将包含选项(MAXRECURSION)的查询返回的行计数为子查询

Sql 无法将包含选项(MAXRECURSION)的查询返回的行计数为子查询,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,执行查询时出错: 关键字“OPTION”附近的语法不正确 您需要移动选项MaxRecursion。。。从子查询到主查询的结尾 Select count(*) from ( Select name from ( Select name,address from <table_name> ) ANS

执行查询时出错:

关键字“OPTION”附近的语法不正确

您需要移动选项MaxRecursion。。。从子查询到主查询的结尾

Select count(*) 
from 
    (
        Select  name  
        from
            (
                Select name,address  
                from <table_name>
            ) ANS 
            OPTION(MAXRECURSION 1)
    ) a1

您的表名在哪里?请尝试运行部分查询以找出哪一个是错误的。从“选择名称、地址来源”开始,这似乎是错误的,然后从“选择名称”、“地址来源”中选择名称,依此类推。顺便说一句,我不认为ANS是有效的SQL,您缺少表名和Select name from Select name,tablename中的地址可以减少为Select name tablename。您没有递归cte-所以您想实现什么?我的查询是关于语法错误的,表名可以放在查询中。不过,现在通过使用结果集获取count,问题得到了解决。感谢您的回复。在获取名称和地址(即在内部查询中)时,必须放置OPTIONMAXRECURSION 1。如果将其置于主查询的末尾,其含义将发生变化。
Select count(*) 
from 
    (
        Select name 
        from
            (
                Select name,address 
                from <table_name>
            ) ANS 
    ) a1
OPTION(MAXRECURSION 1);