34,590
社区成员
发帖
与我相关
我的任务
分享
declare @table table (ID int identity(1,1),F1 varchar(1),F2 varchar(3))
insert into @table(F1,F2)
select 'A','XXX' union all
select 'B','XXX' union all
select 'C','DDD' union all
select 'A','XXX' union all
select 'B','NNN' union all
select 'A','XXX' union all
select 'C','GGG' union all
select 'B','XXX'
select min(ID) as ID,F1,F2 from @table group by F1,F2
order by min(ID)
/*
ID F1 F2
----------- ---- ----
1 A XXX
2 B XXX
3 C DDD
5 B NNN
7 C GGG
*/
USE City;
GO
SET NOCOUNT ON
IF OBJECT_ID(N'A',N'U')IS NOT NULL DROP TABLE A
GO
CREATE TABLE A--创建测试数据表
(
ID int identity(1,1) primary key not null,F1 nvarchar(100),F2 nvarchar(100)
)
INSERT INTO A--插入测试数据
select 'A', 'XXX' union all
select 'B', 'XXX' union all
select 'C', 'DDD' union all
select 'A', 'XXX' union all
select 'B', 'NNN' union all
select 'A', 'XXX' union all
select 'C', 'GGG' union all
select 'B', 'XXX'
go
select ID,F1,F2
from(select *,ROW_NUMBER()over(partition by F1,F2 order by getdate())RN from A) AA
where AA.RN=1 order by ID
/*
ID F1 F2
----------- ---------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------
1 A XXX
2 B XXX
3 C DDD
5 B NNN
7 C GGG
*/
select distinct row_number() over(order by f1) as id,f1,f2 from #table
SELECT *
FROM TB T
WHERE NOT EXISTS(SELECT 1 FROM TB WHERE F1=T.F1 AND F2=T.F2 AND ID<T.ID)