SQL语句之奇形怪状的冷门函数

时间:2024-01-15 09:06:14

lag() over()

SELECT C.*,LAG(C.column,1) OVER(ORDER BY C.column) FROM Table C;

第一条记录已经无法再取前一条记录,所以LAG()函数返回空。

SQL为意思如下。

    LAG(C.CNAME, 1) 表示取前一条记录的CNAME的值。

    OVER(ORDER BY C.CNO)表示按CNO来排序,然后决定记录之间的前后关系

lag() over(partition by column order by column)

SELECT C.*,LAG(C.CNAME,1) OVER(PARTITION BY C.TNO ORDER BY C.CNO) FROM COURSE C;
partition by是用来分区的。对TNO进行分区,在不同的TNO下寻找上一条记录的CNAME的值。

concat( )

SELECT CONCAT(region_name,store_name) FROM Geography
WHERE store_name = 'Boston';