[英]How to determine next row value using select and case in SQL server?
在 SQL 中使用 select 和 case 语句
如果 LETTER 列的下一行是 D,如何使第 4 列为“1”。请参见下面的示例:
您可以将CASE
与LEAD()
结合使用。 假设您正在step
订购,查询可能如下所示:
select
t.*,m
case when lead(letter) over(order by step) = 'D'
then 1 else 0 end as is_next_row_letter_d
from t
假设STEP
列提供了排序并且它是连续的,我们可以在这里使用自连接方法:
SELECT t1.STEP, t1.ID, t1.LETTER,
CASE WHEN t2.LETTER = 'D' THEN 1 ELSE 0 END AS IS_NEXT_D
FROM yourTable t1
LEFT JOIN yourTable t2
ON t2.STEP = t1.STEP + 1
ORDER BY t1.STEP;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.