Sql 如何比较两个int列表,resultset?

Sql 如何比较两个int列表,resultset?,sql,Sql,我在查询的结果集中有两个整数列表,例如:list_1:11,16,28。。。清单2 11,16,19。。在我的Where条件下,如何比较这两个列表??条件是如果列表不同,则进行选择 代码如下: SELECT cosechaAnterior.c_Fk_IdBoleta as 'BOLETA_P16', cosechaAnteriorDestino.c_Fk_IdBoleta as 'BOLETA_P17' FROM Clt_CosechaAnterior cosechaAnterior I

我在查询的结果集中有两个整数列表,例如:list_1:11,16,28。。。清单2 11,16,19。。在我的Where条件下,如何比较这两个列表??条件是如果列表不同,则进行选择

代码如下:

    SELECT cosechaAnterior.c_Fk_IdBoleta as 'BOLETA_P16', cosechaAnteriorDestino.c_Fk_IdBoleta as 'BOLETA_P17'
FROM Clt_CosechaAnterior cosechaAnterior
INNER JOIN  Clt_CosechaAnteriorDestino cosechaAnteriorDestino
ON cosechaAnterior.si_Fk_IdDesglose = cosechaAnteriorDestino.si_Fk_IdDesglose
INNER JOIN Blt_Boleta as boleta
ON cosechaAnterior.c_Fk_IdBoleta = boleta.c_Pk_IdBoleta
WHERE  --boleta.c_Pk_IdBoleta = 44990112--@id_boleta  
           (select si_Fk_IdDesglose
           from Clt_CosechaAnteriorDestino as cosechaAnteriorDestino
           where SUBSTRING(cosechaAnteriorDestino.c_Fk_IdBoleta,5,4) = '0112'
           AND cosechaAnteriorDestino.c_Fk_IdBoleta = 44990112)              (select si_Fk_IdDesglose
                                                                              from Clt_CosechaAnterior as cosechaAnterior
                                                                              where SUBSTRING(cosechaAnterior.c_Fk_IdBoleta,5,4)= '0112'
                                                                              AND cosechaAnterior.c_Fk_IdBoleta = 44990112)

你也许可以用。如果列表_1列表_2之外的计数大于0,则您知道列表是不同的。

您希望通过联接而不是在WHERE子句中执行此操作。从你的问题来看,有点不清楚这两个列表是什么。所以这个答案给出了一个普遍的解决方案

假设列表采用两列格式(,),其中的列表由多个值组成。然后,以下查询返回具有完全相同的值集的所有ID:

select list1.id
from (<subquery 1>) list1 full outer join
     (<subquery 2>) list2
     on list1.id = list2.id and
        list1.val = list2.val
group by list1.id
having max(case when list1.id is null then 1 else 0 end) = 0 and
       max(case when list2.id is null then 1 else 0 end) = 0
选择list1.id
from()列表1完全外部联接
()清单2
在list1.id=list2.id和
list1.val=list2.val
按列表1.id分组
最大值(当list1.id为空时,则为1,否则为0结束)=0,并且
最大值(list2.id为空时为1,否则为0结束)=0
(此公式假设值中没有重复。)


这是一个完整的外部连接,并且只选择连接两边都没有空值的ID。当元素不匹配时,在完全外部联接上生成空值。

将每个列表视为文本blob,并使用函数测试两个文本值是否相等。

语法如何?要比较这两个选项?(选择…)除了(选择…)如果仅在列表不同时选择,则可以执行以下操作。选择。。。其中((列表1选择)除了(列表2选择)>0)