繁体   English   中英

如何在 SQL Server 中使用 select 和 case 确定下一行的值?

[英]How to determine next row value using select and case in SQL server?

在 SQL 中使用 select 和 case 语句

如果 LETTER 列的下一行是 D,如何使第 4 列为“1”。请参见下面的示例:

https://i.stack.imgur.com/br4dn.png

您可以将CASELEAD()结合使用。 假设您正在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM