在 SQL 上获取值“0”和“1”交替行

我正在使用 SQL Server 2015,我有一个包含值“name”列表的表,我需要添加一个列,当“name”列更改时,该列可以交替使用值“0”和“1”。这对我很重要,因为我在 excel 上导入了这个查询,我将使用条件格式读取“trig”的值来格式化行。这是一个期望结果的例子。

+-----+--------+
| trig|  name  |
|-----+--------|
|  0  |  0400  |
|  0  |  0400  |
|  1  |  0150  |
|  1  |  0150  |
|  1  |  0150  |
|  0  |  0111  |
|  0  |  0111  |
+-----+--------+

谢谢

回答

你可以DENSE_RANK在这里使用:

SELECT name, (DENSE_RANK() OVER (ORDER BY name) - 1) % 2 AS trig
FROM yourTable
ORDER BY name;

演示

这里的逻辑是,DENSE_RANK将为每组名称记录返回一个从 1 开始的值。我们可以取这个值的 mod 2 来为每个名称交替获得 0 或 1。


以上是在 SQL 上获取值“0”和“1”交替行的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>