簡體   English   中英

如何在SQL Server中選擇后選擇下一行?

[英]How to select next row after select in SQL Server?

我有這個問題,我需要你的幫助:

EmpNo   Shift_Date  Shift1 shift2    stamp_Date   stamp_Time    stamp_Type
 426    2015-04-12  A                2015-04-12   10:09:00.000  I
 426    2015-04-15  B       C        2015-04-15   23:46:00.000  I
 426    2015-04-15  B       C        2015-04-15   23:45:00.000  O
 426    2015-04-16  OF               2015-04-16   07:02:00.000  O
 426    2015-04-17  A                2015-04-17   07:34:00.000  I
 426    2015-04-18  A                2015-04-18   08:05:00.000  I
 426    2015-04-19  A                2015-04-19   10:29:00.000  I
 426    2015-04-24  A                2015-04-24   07:22:00.000  I

我每次只需要選擇value ='C'的行和下一行。

查詢可以寫成:

; WITH Base AS (
    SELECT *, ROW_NUMBER() OVER (ORDER BY Shift_Date) RN FROM #Table1 
)

, WithC AS (
    SELECT * FROM Base WHERE Shift2 = 'C'
)

SELECT * FROM WithC
UNION
SELECT WithCNext.* FROM WithC C LEFT JOIN Base WithCNext ON C.RN + 1 = WithCNext.RN

您使用ROW_NUMBER()為所有行提供序列號(請注意,您必須選擇排序,我使用了Shift_Date )。 然后用Shift2 = 'C'取行,然后將它們與具有RN + 1的行UNION起來

今天沒有 SQL Fiddle 因為(至少對我而言)它不起作用:-(

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM