27,579
社区成员
发帖
与我相关
我的任务
分享
id size
1 4.5x
2 5x
3 4.5x
4 5x
5 5.5x
6 4.5xx
7 6x
8 5x
9 5x
10 6x
id size
1 4.5x
2 5x
5 5.5x
7 6x
SELECT * FROM #TP T
WHERE NOT EXISTS (SELECT 1 FROM #TP WHERE SIZE=T.SIZE AND ID<T.ID)
id SIZE
----------- ----------
1 4.5x
2 5x
5 5.5x
6 4.5xx
7 6x
(5 row(s) affected)
SELECT * FROM #TP T
WHERE NOT EXISTS (SELECT 1 FROM #TP WHERE SIZE=T.SIZE AND ID<T.ID)
AND NOT EXISTS(SELECT NULL FROM #TP WHERE ID<T.ID AND LEFT(T.SIZE,1)<LEFT(SIZE,1))
id SIZE
----------- ----------
1 4.5x
2 5x
5 5.5x
7 6x
(4 row(s) affected)
select * from tb where id in (select min(id) from tb group by replace(size,'x',''))
CREATE TABLE #tp
(
id INT IDENTITY,
SIZE VARCHAR(10)
)
INSERT INTO #tp SELECT '4.5x'
INSERT INTO #tp SELECT '5x'
INSERT INTO #tp SELECT '4.5x'
INSERT INTO #tp SELECT '5x'
INSERT INTO #tp SELECT '5.5x'
INSERT INTO #tp SELECT '4.5xx'
INSERT INTO #tp SELECT '6x'
INSERT INTO #tp SELECT '5x'
INSERT INTO #tp SELECT '5x'
INSERT INTO #tp SELECT '6x'
SELECT * FROM #TP T
WHERE NOT EXISTS (SELECT 1 FROM #TP WHERE SIZE=T.SIZE AND ID<T.ID)
AND NOT EXISTS(SELECT NULL FROM #TP WHERE ID<T.ID AND LEFT(T.SIZE,1)<LEFT(SIZE,1))
id SIZE
----------- ----------
1 4.5x
2 5x
5 5.5x
7 6x
(4 row(s) affected)
id size
1 4.5x
2 5x
3 4.5x
4 5x
5 5.5x
6 4.5xx
7 6x
8 5x
9 5x
10 6x
id size
1 4.5x
2 5x
5 5.5x
6 4.5xx
7 6x
select MIN(id) id,size
from [表]
group by size
order by id
--> 测试数据:#
if object_id('tempdb.dbo.#') is not null drop table #
create table #(id int, size varchar(8))
insert into #
select 1, '4.5x' union all
select 2, '5x' union all
select 3, '4.5x' union all
select 4, '5x' union all
select 5, '5.5x' union all
select 6, '4.5x' union all
select 7, '6x' union all
select 8, '5x' union all
select 9, '5x' union all
select 10, '6x'
select * from # t where not exists (select 1 from # where size=t.size and id<t.id)
/*
id size
----------- --------
1 4.5x
2 5x
5 5.5x
7 6x
*/
select min(id),size from tb group by size