佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > SQL Server 2008 R2——查找最小nIndex,nIndex存在而nIndex+1不存在 求最小連續(xù)數(shù)組中的最大值

SQL Server 2008 R2——查找最小nIndex,nIndex存在而nIndex+1不存在 求最小連續(xù)數(shù)組中的最大值

熱門標(biāo)簽:呼叫中心市場需求 Linux服務(wù)器 鐵路電話系統(tǒng) 網(wǎng)站排名優(yōu)化 地方門戶網(wǎng)站 服務(wù)外包 AI電銷 百度競價排名

其實大家稍微動下大腦,問題可以轉(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ù)制粘貼需謹(jǐn)慎

執(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使用表達(dá)式遞歸查詢
  • 還原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)境

標(biāo)簽:仙桃 湘潭 湖南 蘭州 衡水 銅川 黃山 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL Server 2008 R2——查找最小nIndex,nIndex存在而nIndex+1不存在 求最小連續(xù)數(shù)組中的最大值》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    新化县| 尤溪县| 玛多县| 鄂托克旗| 泰来县| 皋兰县| 新余市| 南和县| 拉孜县| 兴安盟| 彭山县| 四子王旗| 阳信县| 高台县| 邻水| 定西市| 福清市| 瑞昌市| 揭西县| 乌鲁木齐市| 萝北县| 丰宁| 新干县| 石狮市| 泰州市| 容城县| 六盘水市| 华宁县| 怀化市| 金秀| 湛江市| 周宁县| 会宁县| 华容县| 武宁县| 龙陵县| 普陀区| 清流县| 绍兴市| 崇仁县| 辽阳市|