任何人都可以請解釋我下面的查詢是什麼意思?SQL Server中的校驗和示例說明(T-SQL)
我在一些鏈接中不理解校驗和。這讓我感到困惑。
SELECT COUNT(DISTINCT CHECKSUM(StudentID, RegistrationDate))
FROM RegistrationSummary
謝謝大家。
任何人都可以請解釋我下面的查詢是什麼意思?SQL Server中的校驗和示例說明(T-SQL)
我在一些鏈接中不理解校驗和。這讓我感到困惑。
SELECT COUNT(DISTINCT CHECKSUM(StudentID, RegistrationDate))
FROM RegistrationSummary
謝謝大家。
校驗和計算來自給定列的整數哈希碼。它通常用於檢查兩個不同表中是否存在相同的值,而不必逐一比較每列的枯燥程度。
因此,您提供的查詢是計算表中具有與[StudentID]和[RegistrationDate]不同的值的行數。是功能等同的:
SELECT Count(*) FROM
(
SELECT DISTINCT StudentID, RegistrationDate
FROM RegistrationSummary
)
注意,它始終是可能的兩種完全不同的價值觀,以最終擁有完全相同的散列碼的,所以這不是一個完美的技術。但考慮到校驗和的創建方式,這是不太可能的,因此當比較數據爲十億分之一可接受時,這是比較數據的合理方法。
在這種情況下,它只是允許連接2個不相似的數據類型來檢查2列的唯一性。
你可以很輕鬆地將它改寫爲...
SELECT COUNT(DISTINCT CONCAT(StudentID, RegistrationDate))
FROM RegistrationSummary;
文檔有一個更好的解釋比我能想出。 https://docs.microsoft.com/en-us/sql/t-sql/functions/checksum-transact-sql –