靠近';的SQL子查询语法错误';——不缺少别名
我有一个与类似的问题,但这种情况下的解决方案是向子查询添加别名。在我的例子中,我的每个子查询都有一个别名,但我在每个子查询的末尾都会收到消息靠近';的SQL子查询语法错误';——不缺少别名,sql,reporting-services,sql-server-2008-r2,subquery,ssrs-2000,Sql,Reporting Services,Sql Server 2008 R2,Subquery,Ssrs 2000,我有一个与类似的问题,但这种情况下的解决方案是向子查询添加别名。在我的例子中,我的每个子查询都有一个别名,但我在每个子查询的末尾都会收到消息error syntax near') 我在2008年R2写这个查询,但目标是SSR2000 我的整个查询相当长,但这里有一个缩短的伪代码版本: SELECT A ,B ,C ,D ,E FROM ( SELECT A as 'A', B as 'B', id
error syntax near')
我在2008年R2写这个查询,但目标是SSR2000
我的整个查询相当长,但这里有一个缩短的伪代码版本:
SELECT A
,B
,C
,D
,E
FROM
(
SELECT A as 'A', B as 'B', id
FROM table t
WHERE A = 'some value'
GROUP BY A, B
) AS sub1
LEFT JOIN
(
SELECT C as 'C', D as 'D', id
FROM
(
SELECT id
FROM nutherTable
WHERE id IN
(
SELECT DISTINCT id
FROM sub1
)
)
WHERE D like '%param%'
) AS sub2
ON sub2.id = sub1.id
LEFT JOIN
(
SELECT E as 'E', id
FROM finalTable
WHERE E IS NOT NULL
) AS sub3
ON sub3.id = sub2.id
您会注意到,在第一个左JOIN
中,JOIN使用子查询,而该子查询中的FROM
和WHERE
子句也使用子查询。在我的实际查询中,两个左连接都具有相同的结构。我不明白的一点是,嵌套子查询不需要别名。如果我试图在嵌套子句中使用别名,我会得到一个错误。因此,它只在左连接中的外部查询中遇到问题
我在其他帖子中读到过,子查询只能返回单个字段的结果,但我见过许多示例,其中一个子查询返回多个字段,所以我认为这不是问题所在。或者,如果这将成为一个问题,错误将是不同的。我所读到的所有内容都将此问题归因于缺少子查询的别名,并且无论是否使用别名,我都会得到相同的结果(完全没有别名,以及使用作为
和不使用作为
)。您需要为作为结果集使用的每个子查询提供一个表别名:
LEFT JOIN
(
SELECT C as 'C', D as 'D', id
FROM
(
SELECT id
FROM nutherTable
WHERE id IN
(
SELECT DISTINCT id
FROM sub1
)
) SomeTableName -- HERE IS THE PROBLEM
WHERE D like '%param%'
) AS sub2
你确定你没有在我想要“%param%”
的位置之前缺少别名吗?谢谢,@yack。这修正了错误。现在,我在第一个子查询中遇到了一个不同的错误<代码>无效的对象名称“sub1”
。我试过好几次重命名。我不知道还有什么好尝试的。