考虑按 id 排序且列 IsSatisfied 的表格。
我想创建另一列State,它最初的值为0,并在0和1之间更改,只有当Isatisfied的值等于1时,如下表所示。
我尝试过 LAG() 函数或递归 CTE,但不幸的是失败了。 我找到的最接近的解决方案是 Conditional Recursive SQL Select ,但我无法将其转换以满足我的需要。
最佳答案
如果我理解正确的话,你需要一个 issatisfied
的累积和——然后除以 2 得到余数:
select t.*,
( sum(issatisfied) over (order by id) % 2 ) as state
from t;
关于sql - 使用条件递归 SQL/基于条件创建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67091921/