我創建了一個表tbl_Dist
列名District
和DistCode
,有那麼我已經刪除了使用此語句中的所有重複的值區表中的許多重複值:如何將執行表結果更新到同一個表中?
select distinct District from tbl_Dist;
對其做,但我不獲取如何將上面執行的查詢的結果更新到表tbl_Dist
?
我創建了一個表tbl_Dist
列名District
和DistCode
,有那麼我已經刪除了使用此語句中的所有重複的值區表中的許多重複值:如何將執行表結果更新到同一個表中?
select distinct District from tbl_Dist;
對其做,但我不獲取如何將上面執行的查詢的結果更新到表tbl_Dist
?
您可以按以下:
-- Move temp table
SELECT DISTINCT District INTO TmpTable FROM tbl_Dist
-- Delete all data
DELETE FROM tbl_Dist
-- Insert data from temp table
INSERT INTO tbl_Dist
SELECT * FROM TmpTable
更新
首先,運行此查詢。你將與主表中的不同數據的臨時表(tbl_Dist)
-- Move temp table
SELECT DISTINCT District INTO TmpTable FROM tbl_Dist
然後運行下面的查詢,刪除所有數據
DELETE FROM tbl_Dist
最後,運行下面的查詢,插入所有不同的數據來主表。
-- Insert data from temp table
INSERT INTO tbl_Dist
SELECT * FROM TmpTable
是的,它的工作,但如何更新結果到表?如果我右鍵單擊表名並選擇編輯頂部200行的區域列是空白的。 –
@shivanandsb不清楚。你能顯示樣本和預期的數據嗎? – NEER
從tble TmpTable我想複製的列區表tbl_DIst,我已經嘗試過這種「UPDATE tbl_Dist SET tbl_Dist.District = dbo.TmpTable.District FROM dbo.TmpTable INNER JOIN tbl_Dist ON(dbo.TmpTable.DistCode = tbl_Dist。DistCode);」 –
如果你想保持這個查詢,你可以保持在一個視圖中寫通過view.The表的更新查詢將被更新
你需要Delete
不Update
;with cte as
(
Select row_number() over(partition by District order by (select null)) as rn,*
From yourtable
)
Delete from cte where Rn > 1
檢查將被刪除的記錄使用這個。
;with cte as
(
Select row_number() over(partition by District order by (select null)) as rn,*
From yourtable
)
Select * from cte where Rn > 1
如果我執行這個查詢,所有的行將得到刪除第一行右除? –
@shivanandsb - 是的之前,檢查將通過'選擇' –
將被刪除的記錄你能解釋到底這個腳本會去做什麼 它已被寫入親方式 –
試試這個腳本
DELETE FROM tbl_Dist
WHERE District = District
AND DistCode > DistCode
不DistCode是在你的表的主鍵? –
你的意思是這樣的:'DELETE FROM tbl_Dist WHERE Destrict IN(從tbl_Dist選擇不同的區域)''? – Blobonat
不,DistCode不是主鍵 –