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行有一个子查询。如果我没有看到,我无法帮助您调试代码。。。我是一个开发者,不是一个读心术的人。。。