Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查找具有相同属性的记录_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql 查找具有相同属性的记录

Sql 查找具有相同属性的记录,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我在表格中有记录,如附图所示。我只需要找到那些具有相同“sortorder”和不同“packageboxtypeid”w.r.t“CCID”的记录。所以我们需要找到那些具有相同CCID、相同排序器但不同packageboxtypeid的记录。请帮忙。听起来像这样的东西会有用。通过使用内部联接和选择*,您可以并排比较记录 SELECT * FROM [Table] A INNER JOIN [Table] B ON A.CCID = B.CCID A

我在表格中有记录,如附图所示。我只需要找到那些具有相同“sortorder”和不同“packageboxtypeid”w.r.t“CCID”的记录。所以我们需要找到那些具有相同CCID、相同排序器但不同packageboxtypeid的记录。请帮忙。

听起来像这样的东西会有用。通过使用
内部联接
选择*
,您可以并排比较记录

SELECT *
FROM [Table] A
    INNER JOIN [Table] B
        ON A.CCID = B.CCID
            AND A.SortOrder = B.SortOrder
            AND A.PackageBoxTypeId <> B.PackageBoxTypeId
选择DISTINCT t1*
来自表1 t1
内连接表1 t2
关于t1.CCID=t2.CCID
和t1.sortorder=t2.sortorder
和t1.packageboxtypeid t2.packageboxtypeid

正准备发布同样的内容。我还想说的是,除了加入
之外,您还可以通过
存在
中的
使用子查询,效果类似。完全同意。我选择了
JOIN
,这样您就可以并排比较这两个记录,而不仅仅是一个不匹配的记录列表,但是业务需求可以根据您想要对其执行的操作来决定这两个记录。
SELECT *
FROM [Table] A
WHERE EXISTS (
    SELECT *
    FROM [Table]
    WHERE CCID = A.CCID
        AND SortOrder = A.SortOrder
        AND PackageBoxTypeId <> A.PackageBoxTypeId
)
SELECT DISTINCT t1.*
FROM table1 t1
INNER JOIN table1 t2
   ON t1.CCID = t2.CCID
   AND t1.sortorder = t2.sortorder
   AND t1.packageboxtypeid <> t2.packageboxtypeid