簡體   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