首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么刪除這樣的記錄

2012-02-28 
如何刪除這樣的記錄?我目前有這樣的資料庫,如下:(裡面資料表如下:)A001廣東  WWWA002廣東SSSA003陝西111A0

如何刪除這樣的記錄?
我目前有這樣的資料庫,如下:(裡面資料表如下:)

A001       廣東  WWW                
A002       廣東         SSS
A003       陝西         111
A005       北京         ooo
A006       陝西         qqq
.............
我現在的要求如下:(我要把中間的重復記錄刪除掉,不過不能全部刪除,至少要保留一條,隨便那條記錄都可以!)
A001       廣東  WWW              
A005       北京         ooo
A006       陝西         qqq
                 


[解决办法]
DECLARE @t TABLE(col1 VARCHAR(10), col2 VARCHAR(20),col3 VARCHAR(10))
INSERT INTO @t SELECT 'A001 ', '廣東 ', 'WWW '
UNION ALL SELECT 'A002 ', '廣東 ', 'SSS '
UNION ALL SELECT 'A003 ', '陝西 ', '111 '
UNION ALL SELECT 'A005 ', '北京 ', 'ooo '
UNION ALL SELECT 'A006 ', '陝西 ', 'qqq '

DELETE FROM @t WHERE col1 NOT IN (SELECT MAX(col1) FROM @t GROUP BY col2)
SELECT * FROM @t
[解决办法]
declare @software51 table(id varchar(10),name varchar(10),x varchar(10))
insert @software51
select 'A001 ', '廣東 ', 'WWW ' union all
select 'A002 ', '廣東 ', 'SSS ' union all
select 'A003 ', '陝西 ', '111 ' union all
select 'A005 ', '北京 ', 'ooo ' union all
select 'A006 ', '陝西 ', 'qqq '

delete @software51 where id not in

(select max(id) from @software51 group by name)

select * from @software51


/*结果
id name x
---------- ---------- ----------
A002 廣東 SSS
A005 北京 ooo
A006 陝西 qqq
*/

热点排行