22,209
社区成员
发帖
与我相关
我的任务
分享
CREATE TABLE #T (id INT,m_id VARCHAR(2),m VARCHAR(1))
INSERT INTO #T
SELECT '1','01','a' UNION ALL
SELECT '2','01','b' UNION ALL
SELECT '3','02','c' UNION ALL
SELECT '4','01','d' UNION ALL
SELECT '5','02','e' UNION ALL
SELECT '6','02','f'
select * from #t where m in
(select min(m) from #t group by m_id)
------------------------------------------
select * from #t where m in
(select min(m) from #t where m not in (select min(m) from #t group by m_id ) group by m_id )
IF OBJECT_ID('tempdb.dbo.#T') IS NOT NULL DROP TABLE #T
CREATE TABLE #T (id INT,m_id VARCHAR(2),m VARCHAR(1))
INSERT INTO #T
SELECT '1','01','a' UNION ALL
SELECT '2','01','b' UNION ALL
SELECT '3','02','c' UNION ALL
SELECT '4','01','d' UNION ALL
SELECT '5','02','e' UNION ALL
SELECT '6','02','f'
select
id,
m_id,
m
from
(
select
*,
rowid = row_number() over(partition by m_id order by id)
from #t) a
where rowid = 1
/*
id m_id m
----------- ---- ----
1 01 a
3 02 c
(2 行受影响)
*/
select
id,
m_id,
m
from
(
select
*,
rowid = row_number() over(partition by m_id order by id)
from #t) a
where rowid = 2
/*
id m_id m
----------- ---- ----
2 01 b
5 02 e
(2 行受影响)
*/
--> liangCK小梁 于2008-09-27
--> 生成测试数据: #T
IF OBJECT_ID('tempdb.dbo.#T') IS NOT NULL DROP TABLE #T
CREATE TABLE #T (id INT,m_id VARCHAR(2),m VARCHAR(1))
INSERT INTO #T
SELECT '1','01','a' UNION ALL
SELECT '2','01','b' UNION ALL
SELECT '3','02','c' UNION ALL
SELECT '4','01','d' UNION ALL
SELECT '5','02','e' UNION ALL
SELECT '6','02','f'
--SQL查询如下:
SELECT *
FROM #T AS t
WHERE 1=( --更改这个数字
SELECT COUNT(*)
FROM #T
WHERE m_id=t.m_id
AND id<=t.id
)
SELECT *
FROM #T AS t
WHERE 2=( --更改这个数字
SELECT COUNT(*)
FROM #T
WHERE m_id=t.m_id
AND id<=t.id
)
/*
id m_id m
----------- ---- ----
1 01 a
3 02 c
(2 行受影响)
id m_id m
----------- ---- ----
2 01 b
5 02 e
(2 行受影响)
*/