在SQL Server中,可以使用以下方法消除重復行:
- 使用DISTINCT關鍵字:使用SELECT DISTINCT語句選擇不重復的行。例如,選擇名為"column_name"的列中的不重復值:
SELECT DISTINCT column_name FROM table_name;
- 使用GROUP BY語句:使用GROUP BY語句按照指定的列分組,并選擇每個組的第一行。例如,按照名為"column_name"的列分組:
SELECT column_name FROM table_name GROUP BY column_name;
- 使用窗口函數:使用窗口函數ROW_NUMBER()通過給每一行分配一個唯一的序號來消除重復行。例如,選擇名為"column_name"的列中的不重復值:
SELECT column_name
FROM (
SELECT column_name, ROW_NUMBER() OVER(PARTITION BY column_name ORDER BY column_name) AS row_num
FROM table_name
) sub
WHERE row_num = 1;
- 使用臨時表:將重復的行插入到臨時表中,然后從臨時表中選擇不重復的行。例如,使用以下步驟消除重復行:
- 創建一個臨時表:CREATE TABLE temp_table AS SELECT * FROM table_name;
- 刪除重復的行:DELETE FROM temp_table WHERE column_name IN (SELECT column_name FROM temp_table GROUP BY column_name HAVING COUNT(*) > 1);
- 選擇不重復的行:SELECT * FROM temp_table;
- 刪除臨時表:DROP TABLE temp_table;