gpt4 book ai didi

sql - 在不使用不同运算符的情况下比较 Sql 中的行? (不同的运营商实现)

转载 作者:行者123 更新时间:2023-12-04 23:46:59 26 4
gpt4 key购买 nike

我想比较查询结果中的两行,例如,如果第一行等于第二行。

给定一个表单查询

SELECT * FROM table_name

如果查询结果为 100 行,那么我们如何比较每一行是否相等。只是我很好奇 sql server 将如何实现。基本上是 Distinct 运算符的实现。只是想知道 SQL 服务器将如何在进程后面实现。因为这将有助于更清楚地理解这个概念。

最佳答案

sql server 可能使用的最简单方法 - 比较整行的哈希值:

SELECT CHECKSUM(*)
from YourTable

或选择列

SELECT CHECKSUM(col1, col2, col3)
from YourTable

如果校验和不同 - 行不同,但如果校验和匹配 - 它需要更仔细地检查列的确切值,但或多或​​少会更容易过滤掉校验和不匹配的结果。

检查候选人是否重复:

SELECT CHECKSUM(*)
from YourTable
GROUP BY CHECKSUM(*)
HAVING COUNT(*) > 1

关于sql - 在不使用不同运算符的情况下比较 Sql 中的行? (不同的运营商实现),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8967087/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com