Sql 甲骨文精选1

Sql 甲骨文精选1,sql,oracle,select,Sql,Oracle,Select,我有两个表,一个包含许多信息的主表和一个子表,第一个表有一个FK。第二个表中有许多行具有相同的FK。如果第二个表的同一行中有两个值与此FK不同,我需要返回1(或true) 例: 此查询不起作用,返回以下消息: “单行子查询返回多行” 如何执行此操作?问题在于此子查询: (SELECT 1 FROM subtable WHERE qtd_send = qtd_received AND subtable_FK = MC.ID) as OK 我相信你想要的是: (case when exists (

我有两个表,一个包含许多信息的主表和一个子表,第一个表有一个FK。第二个表中有许多行具有相同的FK。如果第二个表的同一行中有两个值与此FK不同,我需要返回1(或true)

例:

此查询不起作用,返回以下消息:

“单行子查询返回多行”


如何执行此操作?

问题在于此子查询:

(SELECT 1 FROM subtable WHERE qtd_send = qtd_received AND subtable_FK = MC.ID) as OK
我相信你想要的是:

(case when exists (SELECT 1 FROM subtable WHERE qtd_send = qtd_received AND subtable_FK = MC.ID) 
      then 1
      else 0
 end) as OK

我试过了,但它没有按我想要的方式工作,所以我将符号=改为,它工作了。谢谢你,戈登。
(case when exists (SELECT 1 FROM subtable WHERE qtd_send = qtd_received AND subtable_FK = MC.ID) 
      then 1
      else 0
 end) as OK