我看到有人发布了一种基本的去重条目方法,但没有解释它是如何工作的。我知道它可以运行,但我想知道它的工作原理和评估过程。接下来我将贴出代码和我的想法。我希望有人告诉我,我的思考过程是否正确,如果不正确,请有人为我解释一下。
CREATE TABLE #DuplicateRcordTable (Col1 INT, Col2 INT)
INSERT INTO #DuplicateRcordTable
SELECT 1, 1
UNION ALL
SELECT 1, 1
UNION ALL
SELECT 1, 1
UNION ALL
SELECT 1, 2
UNION ALL
SELECT 1, 2
UNION ALL
SELECT 1, 3
UNION ALL
SELECT 1, 4
GO
这将返回一个基本表格:
然后使用以下代码来排除重复项:
SELECT col1,col2
FROM #DuplicateRcordTable
EXCEPT
SELECT col1,col2
FROM #DuplicateRcordTable WHERE 1=0
我的理解是1=0创建了一个“临时”表,结构相同但没有数据。
那么这段代码是否开始向新的空表添加数据呢?
例如,它是否查看第一对Col1、Col2对1,1并说“我在表中没有找到它”,因此将其添加到“temp”表和最终结果,然后检查下一行,也是1,1,然后看到它已经在“temp”表中,所以它不会被添加到最终结果中...以此类推。