国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SqlServer2012中LEAD函數簡單分析

2024-08-31 01:02:29
字體:
來源:轉載
供稿:網友
SQL SERVER 2012 T-SQL新增幾個聚合函數: FIRST_VALUE LAST_VALUE LEAD LAG,今天我們首先來簡單分析下LEAD,希望對大家有所幫助,能夠盡快熟悉這個聚合函數
 
 

LEAD函數簡單點說,就是把下一行的某列數據提取到當前行來顯示,看示例更能解釋清楚,先看測試用腳本

DECLARE @TestData TABLE(   ID INT IDENTITY(1,1),   Department VARCHAR(20),   LastName VARCHAR(20),   Rate FLOAT ) INSERT INTO @TestData(Department,LastName,Rate) SELECT 'Document Control','Arifin',17.7885 UNION ALL SELECT 'Document Control','Norred',16.8269 UNION ALL SELECT 'Document Control','Kharatishvili',16.8269 UNION ALL SELECT 'Information Services','Chai',10.25 UNION ALL SELECT 'Information Services','Berge',10.25 UNION ALL SELECT 'Information Services','Trenary',50.4808 UNION ALL SELECT 'Information Services','Conroy',39.6635 UNION ALL SELECT 'Information Services','Ajenstat',38.4615 UNION ALL SELECT 'Information Services','Wilson',38.4615 UNION ALL SELECT 'Information Services','Connelly',32.4519 UNION ALL SELECT 'Information Services','Meyyappan',32.4519 SELECT * FROM @TestData

SqlServer2012中LEAD函數簡單分析

以上是原始數據,下邊應用LEAD函數,看下怎么把其它行的數據提取到當前行顯示的

SqlServer2012中LEAD函數簡單分析

可以看到,LEAD函數把ID為2的那一行的LastName值提取到第一行顯示為新列NEXTUser,就這么個功能

下邊這個是間隔兩行提取數據,就是把第三行的數據提取到當前行,其它行以次累推,看圖

SqlServer2012中LEAD函數簡單分析

這個函數一共接受三個參數,第一個是表達式,以上示例都使用的字段,還可以是其它有效的表達式,第二個參數是offset,即間隔多少行取數據,第三個是默認的間隔,即當沒有指定offset時以此為準

舉個例子,以上述代碼為例

LEAD(LastName,2,0)

當沒有指定那個2的時候,則以間隔0行為準,當有指定那個2的時候則間隔2行取數據,所以,往往第三個參數可以不指定,效果是一樣的,如下圖

SqlServer2012中LEAD函數簡單分析

與LEAD函數相對應的還有一個函數,LAG,看下圖效果

SqlServer2012中LEAD函數簡單分析

如上圖所示,這個函數是從上行取數據,其它間隔參數的意義一樣,LEAD是從下行取數據,TAG相反是上行取數據,寫到這里我就再想,如果指定負數,是不是就可以合并為一個函數了?試下想法:

SqlServer2012中LEAD函數簡單分析

報錯,offset參數不能為負,哥不作評論,,,The End


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淮北市| 迁西县| 来凤县| 五原县| 辽源市| 霍邱县| 彩票| 临邑县| 赞皇县| 汝阳县| 浪卡子县| 手机| 海南省| 泗水县| 滦南县| 叶城县| 印江| 尼木县| 云安县| 新郑市| 承德市| 湖口县| 新建县| 敦煌市| 黄陵县| 龙南县| 来凤县| 桃源县| 千阳县| 屏南县| 准格尔旗| 子洲县| 平利县| 临澧县| 凉城县| 大庆市| 布拖县| 翼城县| 柘荣县| 泰宁县| 象州县|