22,209
社区成员
发帖
与我相关
我的任务
分享
/* 测试数据
WITH table1(编号,姓名,金额)AS(
SELECT 1,'张三',100 UNION ALL
SELECT 2,'张三',120 UNION ALL
SELECT 7,'李四',500 UNION ALL
SELECT 8,'李四',50 UNION ALL
SELECT 9,'李四',100 UNION ALL
SELECT 10,'王五',150
)*/
SELECT *
FROM table1 t1
WHERE EXISTS( -- 前一条姓名相同(最小行)
SELECT *
FROM table1 t0
WHERE t0.编号 = t1.编号 - 1
AND t0.姓名 = t1.姓名)
/* 如果要包括非连续编号,加上下面的条件 */
OR NOT EXISTS( -- 下一条姓名不同(连续编号的最后一条、非连续编号)
SELECT *
FROM table1 t2
WHERE t2.编号 = t1.编号 + 1
AND t2.姓名 = t1.姓名)
ORDER BY 编号
编号 姓名 金额
----------- ---- -----------
2 张三 120
8 李四 50
9 李四 100
10 王五 150