2018年3月8日 星期四

[SQL Server 2017-SSMS] SQL語法刪除重複資料

因為資料庫為測試資料匯入用,
所以沒有設唯一值(KEY),
裡面有很多重複資料想刪除,
上網找了語法參考了幾篇文章,
我使用的是WITH、PARTITION 與 ROW_NUMBER()的語法搭配,
因為我沒有可參考的ID(流水號)。


[參考文章1] 如何刪除 SQL Server 資料庫中重複的資料 (兩種不同解法)
[參考文章2] [SQL] 於多筆重複資料中取得該重複群組中最新一筆資料


因為我的SQL版本是2017就遇到了資料庫相容性的問題



使用以下語法:


ALTER DATABASE TestDB2  
SET COMPATIBILITY_LEVEL = 90






因SQL2017最低只能相容到100,所以有錯誤訊息。
使用以下語法:


ALTER DATABASE TestDB2  
SET COMPATIBILITY_LEVEL = 100




還是會有錯誤提示,但我發現其實能查詢,那就先這樣吧。


[參考文章3] ALTER DATABASE (TRANSACT-SQL) 相容性層級


WITH和 ROW_NUMBER()語法可參考這邊。


[參考文章4] SQL 中使用 WITH AS 提高性能
[參考文章5] ROW_NUMBER (Transact-SQL)



沒有留言:

張貼留言

[Javascript] Devexpress label SetText

看別人用得很順, function saveComplete(s, e) {             var r = e.result;             var result = r.split(',');             switch (r...