读书人

怎么除的

发布时间: 2012-02-28 13:06:34 作者: rapoo

如何除的?
我目前有的料,如下:(面料表如下:)

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
*/

读书人网 >SQL Server

热点推荐