Tsql 如果存在查询,如何更正此错误?
您知道为什么这段代码返回语法错误吗?子查询正确执行Tsql 如果存在查询,如何更正此错误?,tsql,Tsql,您知道为什么这段代码返回语法错误吗?子查询正确执行 if exists ( select ad_ulica from #adresy_sprawdzenie where DN=1 and RN=1 and ad_ulica=(select ad_ulica from #adresy_sprawdzenie where DN=1 and RN=2) ) 我猜你会有一个错误,说: 子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时。声明已终止
if exists (
select ad_ulica from #adresy_sprawdzenie where DN=1 and RN=1 and
ad_ulica=(select ad_ulica from #adresy_sprawdzenie where DN=1 and
RN=2)
)
我猜你会有一个错误,说: 子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时。声明已终止 以下是一个查询,您可以得到所需的结果:
if exists (
select 1
from #adresy_sprawdzenie
where DN=1
and RN in (1, 2)
group by ad_ulica
having count(distinct rn) = 2
)
使用group by和having with countdistinct rn检查是否至少有两条记录具有相同的dn=1的数据,其中一条记录的rn=1,另一条记录的rn=2。发现一个问题,并通过以下方式解决该问题:
if exists (
select ad_ulica from #adresy_sprawdzenie where DN=1 and RN=1 and
ad_ulica in (select ad_ulica from #adresy_sprawdzenie where DN=1 and
RN=2)
)
begin
-- tsql here
end
else
begin
-- tsql here
end
而不是…和ad_ulica=从adresy_sprawdzenie中选择ad_ulica,其中DN=1和RN=2
我用in代替了等号
让我知道它是否有效。这是我收到的错误:Msg 102,级别15,状态1,第86行附近语法不正确。第86行是什么?我发布的代码没有经过测试,但我没有看到语法错误。第86行有一个子查询。如果我没有看到,我无法帮助您调试代码。。。我是一个开发者,不是一个读心术的人。。。