连接两个连续行的值 SQL

Concatenate values of two consecutive rows SQL

我想编写一个 SQL 查询来连接 2 个连续行的行值,如下所述:

我有以下 table:

No.    ProductName    pSerial_No
1        Item1           a12
2        Item2           b12
3        Item3           c12

我想要另一列如下:

  No.      ProductName      pSerial_No      ConcatValue  
  1          Item1             a12              
  2          Item2             b12             b12a12
  3          Item3             c12             c12b12

concat 值是第 2 行中的 serial_no 值与第 1 行中的 serial_no 值、第 3 行中的 serial_no 值与 serial_no 值的串联是第 2 行,依此类推。由于第 1 行上面没有行,因此该值保持不变。

我怎样才能做到这一点?

假设 SerialNo 定义了你的订单,那么你可以使用 LAG() 从上一行中获取值:

SELECT  ProductName,
        Serial_No,
        CONCAT(Serial_No, LAG(Serial_No) OVER(ORDER BY Serial_No)) AS ConcatValue
FROM    YourTable;

如果Serial_No没有定义您的订单,那么您可以根据需要修改订单。