SqlServer2012中LEAD函數(shù)簡單分析
LEAD函數(shù)簡單點(diǎn)說,就是把下一行的某列數(shù)據(jù)提取到當(dāng)前行來顯示,看示例更能解釋清楚,先看測試用腳本
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

以上是原始數(shù)據(jù),下邊應(yīng)用LEAD函數(shù),看下怎么把其它行的數(shù)據(jù)提取到當(dāng)前行顯示的

可以看到,LEAD函數(shù)把ID為2的那一行的LastName值提取到第一行顯示為新列NEXTUser,就這么個功能
下邊這個是間隔兩行提取數(shù)據(jù),就是把第三行的數(shù)據(jù)提取到當(dāng)前行,其它行以次累推,看圖

這個函數(shù)一共接受三個參數(shù),第一個是表達(dá)式,以上示例都使用的字段,還可以是其它有效的表達(dá)式,第二個參數(shù)是offset,即間隔多少行取數(shù)據(jù),第三個是默認(rèn)的間隔,即當(dāng)沒有指定offset時以此為準(zhǔn)
舉個例子,以上述代碼為例
LEAD(LastName,2,0)
當(dāng)沒有指定那個2的時候,則以間隔0行為準(zhǔn),當(dāng)有指定那個2的時候則間隔2行取數(shù)據(jù),所以,往往第三個參數(shù)可以不指定,效果是一樣的,如下圖
![SNAGHTMLf21b213[6]](http://img.jbzj.com/file_images/article/201408/2014082610085941.png)
與LEAD函數(shù)相對應(yīng)的還有一個函數(shù),LAG,看下圖效果

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

報錯,offset參數(shù)不能為負(fù),哥不作評論,,,The End
相關(guān)文章
SQLServer 數(shù)據(jù)導(dǎo)入導(dǎo)出的幾種方法小結(jié)
在涉及到SQL Server編程或是管理時一定會用到數(shù)據(jù)的導(dǎo)入與導(dǎo)出, 導(dǎo)入導(dǎo)出的方法有多種,結(jié)合我在做項目時的經(jīng)歷做一下匯總2010-06-06
Sql Server 數(shù)據(jù)庫中調(diào)用dll文件的過程
這篇文章主要介紹了Sql Server 數(shù)據(jù)庫中調(diào)用dll文件的過程,非常不錯,具有一定的參考借鑒價值,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05
關(guān)于SQL Server數(shù)據(jù)庫中的用戶權(quán)限和角色管理功能實(shí)現(xiàn)
在本文中,我們介紹了在SQL Server中創(chuàng)建用戶、分配權(quán)限和管理角色的基礎(chǔ)知識,請記住定期審查和更新用戶權(quán)限,以符合您組織的安全政策和數(shù)據(jù)訪問要求,這篇文章主要介紹了關(guān)于SQL Server數(shù)據(jù)庫中的用戶權(quán)限和角色管理,需要的朋友可以參考下2024-03-03
sql server 2008 壓縮備份數(shù)據(jù)庫(20g)
這篇文章主要介紹了針對20g數(shù)據(jù)庫的遷移問題,,需要的朋友可以參考下2018-03-03
Sql Server臨時表和游標(biāo)的使用小結(jié)
這篇文章主要介紹了Sql Server臨時表和游標(biāo)的使用小結(jié),需要的朋友可以參考下2017-05-05
sqlserver查詢?nèi)サ糁貜?fù)數(shù)據(jù)的實(shí)現(xiàn)
這篇文章主要介紹了sqlserver查詢?nèi)サ糁貜?fù)數(shù)據(jù)的實(shí)現(xiàn)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
Sqlserver2000 數(shù)據(jù)庫備份實(shí)例代碼
每個星期天凌晨1點(diǎn)做一次完全備份,為保險起見,備份到兩個同樣的完全備份文件test_full_A.bak和test_full_B.bak2010-07-07

