首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >判断同一个SQL表中的两条记录是否不同的最快/最简单的方法是什么?

判断同一个SQL表中的两条记录是否不同的最快/最简单的方法是什么?
EN

Stack Overflow用户
提问于 2012-04-25 03:44:25
回答 5查看 79关注 0票数 1

我希望能够比较同一SQL表中的2条记录,并告诉他们是否不同。我不需要说出什么是不同的,只需要说它们是不同的。

此外,我只需要比较记录中10列中的7列。即)每条记录有10列,但我只关心其中的7列。

这可以通过SQL实现吗?或者我是否应该获取C#中的记录,并对它们进行散列处理,以查看它们是否具有不同的值?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-04-25 03:50:01

您可以像这样编写group by查询:

代码语言:javascript
运行
复制
SELECT field1, field2, field3, .... field7, COUNT(*)
FROM table
[WHERE primary_key = key1 OR primary_key = key2]
GROUP BY field1, field2, field3, .... field7
HAVING COUNT(*) > 1

这样,您就可以获得字段1到7具有相同值的所有记录,以及出现的次数。

使用OR或IN (...)添加括号之间的部分,以限制搜索重复项。

票数 6
EN

Stack Overflow用户

发布于 2012-04-25 04:02:37

代码语言:javascript
运行
复制
IF EXISTS (SELECT Col1, Col2, ColEtc...
            from MyTable
            where condition1
           EXCEPT SELECT Col1, Col2, ColEtc...
            from MyTable
            where condition2)
 BEGIN
    --  Query returns all rows from first set that are not column for column
    --  also in the second (EXCEPT) set.  So if there are any, there will be
    --  rows returned, which meets the EXISTS criteria. Since you're only
    --  checking EXISTS, SQL doesn't actually need to return columns.

 END
票数 2
EN

Stack Overflow用户

发布于 2012-04-25 03:50:48

不需要散列。正常的相等比较就足够了:

代码语言:javascript
运行
复制
select isEqual = case when t1.a <> t2.a or t1.b <> t2.b bbb then 1 else 0 end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10304942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档