Sql 查找具有相同属性的记录
我在表格中有记录,如附图所示。我只需要找到那些具有相同“sortorder”和不同“packageboxtypeid”w.r.t“CCID”的记录。所以我们需要找到那些具有相同CCID、相同排序器但不同packageboxtypeid的记录。请帮忙。听起来像这样的东西会有用。通过使用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
内部联接
和选择*
,您可以并排比较记录
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