SQL Server 2008 R2——查找最小nIndex,nIndex存在而nIndex+1不存在 求最小連續(xù)數(shù)組中的最大值
其實大家稍微動下大腦,問題可以轉(zhuǎn)化為,是求最小連續(xù)數(shù)組中的最大值,數(shù)組大小可以為1。
=======================================================================
做戲做全套,送佛送到西。
為了便于學(xué)習(xí)研究,必然是要寫全套示例代碼的。
------------------------------------------------------------------------------------- --by wls --非專業(yè)SQL 不求高效 但求能跑 USE tempdb GO ------------------------------------------------------------------------------------- IF OBJECT_ID (N't_MaxInMinContinuousArr', N'U') IS NOT NULL DROP TABLE t_MaxInMinContinuousArr; GO CREATE TABLE t_MaxInMinContinuousArr(SNId INTEGER PRIMARY KEY,SomeDate DATETIME) GO ------------------------------------------------------------------------------------- DECLARE @i INT SET @i = --SNId起始值 DECLARE @TestScale INTEGER SET @TestScale=+@i --數(shù)據(jù)規(guī)模 DECLARE @t DATETIME , @t DATETIME , @dd INT , @dayadd INT , @tRes DATETIME SET @t = '-- ::' SET @t = '-- ::' SET @dd = DATEDIFF(dd, @t, @t) WHILE @i < @TestScale --數(shù)據(jù)規(guī)模 BEGIN SET @dayadd = @dd * RAND() SET @tRes = DATEADD(dd, @dayadd, @t) + RAND() INSERT INTO t_MaxInMinContinuousArr VALUES(@i , @tRes) SET @i = @i + END GO --SELECT TOP * FROM t_MaxInMinContinuousArr --GO ------------------------------------------------------------------------------------- --Delete some SNId randomly DECLARE @TestScale INTEGER SET @TestScale= --數(shù)據(jù)規(guī)模 DELETE FROM t_MaxInMinContinuousArr WHERE SNId=--(SELECT abs(checksum(newid()))%@TestScale + ) DELETE FROM t_MaxInMinContinuousArr WHERE SNId=--(SELECT abs(checksum(newid()))%@TestScale + ) GO --SELECT TOP * FROM t_MaxInMinContinuousArr --GO ------------------------------------------------------------------------------------- --now find the SNId that SNId+ is missing. WITH TMinAndMaxSNId AS( SELECT MIN(SNId) AS MinSNId,MAX(SNId) AS MaxSNId FROM t_MaxInMinContinuousArr --The min and max SNId ), TContinuousId AS ( SELECT number AS SNIdCmped FROM master..spt_values,TMinAndMaxSNId WHERE type='p' AND number >=TMinAndMaxSNId.MinSNId AND number <=TMinAndMaxSNId.MaxSNId ) SELECT MIN(res.SNIdCmped)- FROM ( SELECT SNIdCmped FROM TContinuousId EXCEPT SELECT SNId FROM t_MaxInMinContinuousArr) AS res GO
附上執(zhí)行計劃
=======================================================================
我也不知道這代碼能不能用,先發(fā)表了后續(xù)慢慢改吧。
網(wǎng)絡(luò)代碼有風(fēng)險 復(fù)制粘貼需謹慎
執(zhí)行這兩個語句清緩存。
DBCC FREEPROCCACHE GO DBCC DROPCLEANBUFFERS GO
=======================================================================
20151103-01
代碼有問題 有空改
=======================================================================
20151103-02
又嘗試了一下(大概幾十次猜范圍),發(fā)現(xiàn)只能處理2048以內(nèi)的缺失查找。這是個敏感的數(shù)字,得研究下。
當(dāng)然也可能是我不專業(yè),寫的代碼有問題。
幸好不是我在開發(fā)、生產(chǎn)中遇到的問題,還能悠哉悠哉的分析查找問題。
這件事的啟示是:你們這些討人厭的爬蟲小網(wǎng)站,錯誤代碼就在這里我還就是不改了。
你們的行為是違法的,并不是說通知然后刪除就是可以的。
我保留一切法律賦予我的權(quán)利。
- sqlserver2008 拆分字符串
- SQLserver2008使用表達式遞歸查詢
- 還原sqlserver2008 媒體的簇的結(jié)構(gòu)不正確的解決方法
- ASP.NET下向SQLServer2008導(dǎo)入文件實例操作方法
- SQLServer2005與SQLServer2008數(shù)據(jù)庫同步圖文教程
- Win2008中SqlServer2008 無法打開錯誤日志文件導(dǎo)致無法啟動的解決方法
- 深入SqlServer2008 數(shù)據(jù)庫同步的兩種方式(Sql JOB)的分析介紹
- sqlserver2008鎖表語句詳解(鎖定數(shù)據(jù)庫一個表)
- sqlserver2008安裝報語言不符的解決方法
- sqlserver2008查看表記錄或者修改存儲過程出現(xiàn)目錄名無效錯誤解決方法
- Win2003+apache+PHP+SqlServer2008 配置生產(chǎn)環(huán)境
相關(guān)文章
sql server連接不上怎么辦 SQL Server2008R無法登錄的解決方案(1814\18456)
sql server連接不上怎么辦?可能是系統(tǒng)文件損壞,莫慌!這篇文章為大家詳細介紹了SQL Server2008R無法登錄的解決方案,感興趣的小伙伴們可以參考一下2016-08-08安裝SQL Server 2008時 總是不斷要求重啟電腦的解決辦法
本篇文章是對安裝SQL Server 2008時,總是不斷要求重啟電腦的解決辦法進行了詳細的分析介紹,需要的朋友參考下2013-06-06sql2008設(shè)置subcategory報表參數(shù)可用值和默認值步驟分享
sql2008設(shè)置subcategory報表參數(shù)可用值和默認值步驟分享,大家參考使用吧2013-12-12sql Server 2008 R2還原或刪除數(shù)據(jù)庫時總是出錯的解決方法
這篇文章主要介紹了sql Server 2008 R2還原或刪除數(shù)據(jù)庫時總是出錯的解決方法,需要的朋友可以參考下2015-10-10Sql Server 2008R2升級Sql Server 2012圖文教程
這篇文章主要分享了了Sql Server 2008R2升級Sql Server 2012圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10SQL SERVER 2008 無法附加數(shù)據(jù)庫的解決方法
重裝SQL了之后,想把以前的數(shù)據(jù)庫附加上去,但是附加不了,錯誤提示見上2011-12-12sql2008啟動代理未將對象應(yīng)用到實例解決方案
本文將介紹sql2008啟動代理未將對象應(yīng)用到實例的多種原因,本文提供詳細解決方案,需要了解的朋友可以參考下2012-11-11Sql Server 2008 精簡版(Express)+Management Studio Express第一次安裝使
Sql Server 2008 精簡版(Express)和管理工具的安裝以及必須重新啟動計算機才能安裝 SQLServer的問題和第一次使用sqlexpress的連接問題的相關(guān)資料2020-08-08SQL Server2008r2 數(shù)據(jù)庫服務(wù)各種無法啟動問題的解決辦法(詳解)
這篇文章主要介紹了SQL Server2008r2 數(shù)據(jù)庫服務(wù)各種無法啟動問題的解決辦法(詳解)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-11-11