34,588
社区成员
发帖
与我相关
我的任务
分享
select 1,最小=(
select min(A) FROM (
select 1 as 'A',1 as 'B'
union
select 1 as 'A',2 as 'B'
union
select 2 as 'A',3 as 'B'
union
select 3 as 'A',4 as 'B'
union
select 3 as 'A',4 as 'B'
union
select 4 as 'A',4 as 'B'
union
select 2 as 'A',4 as 'B'
) T
)
--from tb
;with T as(
select 1 as 'A',1 as 'B'
union select 1 as 'A',2 as 'B'
union select 2 as 'A',3 as 'B'
union select 3 as 'A',4 as 'B'
union select 3 as 'A',4 as 'B'
union select 4 as 'A',4 as 'B'
union select 2 as 'A',4 as 'B')
select top 1 * from T a
where B=(select min(B) from T where A=a.A)
order by A
/*
A B
----------- -----------
1 1
*/
declare @tb table(a int,b int)
insert into @tb
select 1,1
union
select 1,2
union
select 2,3
union
select 3,4
union
select 3,4
union
select 4,4
union
select 2,4
select *
from @tb t
where not exists (select 1 from @tb where a < t.a or (a = t.a and b < t.b))
/***************
a b
----------- -----------
1 1
(1 行受影响)
select 1, min(A)
FROM (select 1 as 'A',1 as 'B'
union select 1 as 'A',2 as 'B'
union select 2 as 'A',3 as 'B'
union select 3 as 'A',4 as 'B'
union select 3 as 'A',4 as 'B'
union select 4 as 'A',4 as 'B'
union select 2 as 'A',4 as 'B') T
/*
1 1
*/