首页 > 解决方案 > 显示具有不同值的行

问题描述

我有一个 ID 和 Value 列。我需要显示当前行中的值(在值列中)与前一行中的值不同的行。尝试使用滞后,但它不能正常工作。

它应该显示 1,5,7,9。(示例)

+----+-------+
| 身份证 | 价值 |
+----+-------+
| 1 | 10 |
| 3 | 10 |
| 5 | 20 |
| 6 | 20 |
| 7 | 30 |
| 9 | 40 |
| 10 | 40 |

标签: sqlsql-server

解决方案


Андрей。请试试这个:

SELECT id,value FROM
(
 SELECT id, value, LAG(value)OVER (order by id) prevVal
 from tab
) X 
WHERE (prevVal<>value) or (prevVal IS NULL)

推荐阅读