SqlServer2012中LEAD函數(shù)簡(jiǎn)單分析
LEAD函數(shù)簡(jiǎn)單點(diǎn)說,就是把下一行的某列數(shù)據(jù)提取到當(dāng)前行來(lái)顯示,看示例更能解釋清楚,先看測(cè)試用腳本
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,就這么個(gè)功能
下邊這個(gè)是間隔兩行提取數(shù)據(jù),就是把第三行的數(shù)據(jù)提取到當(dāng)前行,其它行以次累推,看圖
這個(gè)函數(shù)一共接受三個(gè)參數(shù),第一個(gè)是表達(dá)式,以上示例都使用的字段,還可以是其它有效的表達(dá)式,第二個(gè)參數(shù)是offset,即間隔多少行取數(shù)據(jù),第三個(gè)是默認(rèn)的間隔,即當(dāng)沒有指定offset時(shí)以此為準(zhǔn)
舉個(gè)例子,以上述代碼為例
LEAD(LastName,2,0)
當(dāng)沒有指定那個(gè)2的時(shí)候,則以間隔0行為準(zhǔn),當(dāng)有指定那個(gè)2的時(shí)候則間隔2行取數(shù)據(jù),所以,往往第三個(gè)參數(shù)可以不指定,效果是一樣的,如下圖
與LEAD函數(shù)相對(duì)應(yīng)的還有一個(gè)函數(shù),LAG,看下圖效果
如上圖所示,這個(gè)函數(shù)是從上行取數(shù)據(jù),其它間隔參數(shù)的意義一樣,LEAD是從下行取數(shù)據(jù),TAG相反是上行取數(shù)據(jù),寫到這里我就再想,如果指定負(fù)數(shù),是不是就可以合并為一個(gè)函數(shù)了?試下想法:
報(bào)錯(cuò),offset參數(shù)不能為負(fù),哥不作評(píng)論,,,The End
相關(guān)文章
sql分組后二次匯總(處理表重復(fù)記錄查詢和刪除)的實(shí)現(xiàn)方法
這篇文章主要介紹了sql分組后二次匯總的實(shí)現(xiàn)方法,需要的朋友可以參考下2017-02-02Sql Server事務(wù)語(yǔ)法及使用方法實(shí)例分析
這篇文章主要介紹了Sql Server事務(wù)語(yǔ)法及使用方法,結(jié)合實(shí)例形式分析了Sql Server事務(wù)的概念、原理及相關(guān)使用技巧,需要的朋友可以參考下2019-02-02一步步教你建立SQL數(shù)據(jù)庫(kù)的表分區(qū)
分區(qū)存儲(chǔ)提高了數(shù)據(jù)庫(kù)的性能,被分區(qū)存儲(chǔ)的數(shù)據(jù)物理上是多個(gè)文件,但邏輯上任然是一個(gè)表,對(duì)表的任何操作都跟沒分區(qū)之前一樣。插入、刪除、查詢、更新等操作的時(shí)候,數(shù)據(jù)庫(kù)會(huì)自動(dòng)為你找到對(duì)應(yīng)的分區(qū),然后執(zhí)行操作。2015-09-09

SQL Server數(shù)據(jù)庫(kù)中批量導(dǎo)入數(shù)據(jù)的四種方法總結(jié)

sqlserver中在指定數(shù)據(jù)庫(kù)的所有表的所有列中搜索給定的值

sqlserver如何生成連續(xù)數(shù)值,字母,字符