婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 用一句SQL解決SQL中斷號問題 推薦

用一句SQL解決SQL中斷號問題 推薦

熱門標(biāo)簽:最新人工智能電銷機器人 沒聽見電話機器人幫你接 陜西電銷外呼系統(tǒng)好用嗎 成都電話外呼系統(tǒng)一般多少錢 蘭州語音外呼系統(tǒng)運營商 如何做地圖標(biāo)注圖鋪 數(shù)字匠心電銷機器人 銀川高頻外呼回撥系統(tǒng)多少錢 al智能電話機器人
名詞解釋
  斷號:比如,連續(xù)生成的編號,由于某種操作(通常為刪除)后,產(chǎn)生不連續(xù)的編號,我們將這種不連續(xù)的編號稱為斷號。
  例如,數(shù)據(jù)庫中有一個字段叫合同編號,正常格式為201106_011(表示2011年6月的第11個合同),那么它前面的一個合同編號應(yīng)該為201106_10,后面的一個應(yīng)該為201106_12,當(dāng)我們刪除了合同201106_011,就會出現(xiàn)201106_010后面直接是201106_012,這種情況下叫做斷號。
  傳統(tǒng)系統(tǒng)中,像這種斷號的情況很常見,比如數(shù)據(jù)庫中的列為遞增類型,當(dāng)刪除某行后,就會出現(xiàn)斷號,而經(jīng)常有客戶提出需求,不希望出現(xiàn)斷號的情況。解決方案通常就是,如果刪除了某行數(shù)據(jù),那么下次新增時,應(yīng)該將斷號補齊。
      問題很簡單,解決方法也很簡單:
      寫一個C#方法,用來獲取下一條記錄的編號:

復(fù)制代碼 代碼如下:

public static int GetNextNumber(int[] iNumList)
{
int iTempStr = iNumList[0]; //用一個臨時變量保存上一條記錄的編號
for (var i = 0; i iNumList.Length - 1; i++)
{
if (i == 0)
{
iTempStr = iNumList[i];
}
//如果出現(xiàn)斷號,則補齊斷號
if ((iNumList[i] - iTempStr) > 1)
{
return iTempStr + 1;
}
else
{
iTempStr = iNumList[i];
}
continue;
}
return iNumList[iNumList.Length - 1] + 1;
}

當(dāng)然,這段代碼也可以簡寫為以下形式:
復(fù)制代碼 代碼如下:

public static int GetNextNumber3(int[] iNumList)
{
for (int i = 0, j = 1; j iNumList.Length - 1; i++, j++)
{
//如果出現(xiàn)斷號,則補齊斷號
if ((iNumList[j] - iNumList[i]) > 1)
{
return iNumList[i] + 1;
}
}
return iNumList[iNumList.Length - 1] + 1;
}

測試代碼如下:
復(fù)制代碼 代碼如下:

static void Main(string[] args)
{
int[] iNums = { 1, 2, 4, 5, 6, 9, 10 }; //刪除了數(shù)組中的3,7,8,即3,7,8為斷號,下次新增時,希望產(chǎn)生的斷號為3
System.Console.WriteLine(BreakNumber.GetNextNumber3(iNums));
System.Console.WriteLine(BreakNumber.GetNextNumber(iNums));
}

運行結(jié)果如下:
  
 
前幾天再次接觸到這個問題,由于特殊的場景,再用C#反而會增加開發(fā)難度,如果想法通過SQL來解決問題:
建表及制造數(shù)據(jù)SQL:
復(fù)制代碼 代碼如下:

CREATE TABLE testTable
(
Code int primary key
)

INSERT INTO testTable(Code) VALUES (1)
INSERT INTO testTable(Code) VALUES (2)
INSERT INTO testTable(Code) VALUES (3)
INSERT INTO testTable(Code) VALUES (4)
INSERT INTO testTable(Code) VALUES (5)
INSERT INTO testTable(Code) VALUES (6)
INSERT INTO testTable(Code) VALUES (7)
INSERT INTO testTable(Code) VALUES (8)
INSERT INTO testTable(Code) VALUES (9)
INSERT INTO testTable(Code) VALUES (10)

然后再同樣刪除第3、7、8行的數(shù)據(jù),使這三行產(chǎn)生斷號:
DELETE FROM testTable WHERE Code in (3,7,8)
分析:要產(chǎn)生連號,即是要讓Code這一列上連續(xù)的,也就是說每每兩行之間的Code相差為1
由于Code是從1開始的(從其他數(shù)字開始的也是同理計算),即按Code從小到大排序號,Code為1的行應(yīng)該為第一行,Code為10的行應(yīng)該在第10行,即Code=行號,
既然這樣,預(yù)覽數(shù)據(jù)如下:
刪除數(shù)據(jù)前的排號:
  
 
  刪除數(shù)據(jù)后的排號:
  很明顯發(fā)現(xiàn),刪除數(shù)據(jù)前,Code=行號,刪除后Code不等于等號,而刪除數(shù)據(jù)后的第一行Code不等于行號的數(shù)據(jù),即是第一個出現(xiàn)斷號的數(shù)據(jù),即為我們想要查詢的結(jié)果。
  如是,如果數(shù)據(jù)庫中有斷號,則可以用以下語句直接查出斷號:
  
  結(jié)果立現(xiàn)。
  這段代碼還存在一個缺陷,即此方法專用來處理有斷號的情況,如果不存在斷號時,應(yīng)該返回Max(RowNumber)+1。正確代碼應(yīng)該如下:
 
  至此,我今天要講的基本結(jié)束,此處借用了SQL2005的方法row_number ,其他數(shù)據(jù)庫中也有類似的方法,大家可以自己摸索。
  問題完全解決了嗎?大家可以發(fā)現(xiàn),以上出現(xiàn)了斷號的情況,都是從小開始補號,比如3,7,8同時為斷號,則補3。假如有客戶要求從大號開始補號(即3,7,8斷號時,補8呢),怎么處理?
  前面兩種通過C#方法操作的就很容易了,這里主要說一下通過SQL處理的方法:
  
  那么再擴展一下,如何查出所有的斷號呢?
  要實現(xiàn)這個功能,一般想法是將當(dāng)前Code與上一行的Code進行對比,但由于可能出現(xiàn)連續(xù)斷號的情況(例如刪除了 Code=7、8、9三行)。此時該如何處理呢?
  我的解決方法是,假如max(code)等于100,那么我先構(gòu)造出100行(怎樣構(gòu)造?數(shù)據(jù)庫中隨便找個行數(shù)大于100的表,select top 100就行了,如果沒有行數(shù)大于100的表,就聯(lián)合查詢構(gòu)造出100行吧),再用這一100行的行號分別和code進行對比,如果存在Code>行號的,即該處為斷裂號,示例如下:
假設(shè)系統(tǒng)中已經(jīng)存在另一張表A,它的總行數(shù)>max(Code),【注:當(dāng)然,如果不存在這樣的表,也可以通過select 的方式構(gòu)造出來】,
查詢所有斷號的SQL如下:
  
  
  至此,問題結(jié)束,以上代碼的優(yōu)點在于只用一個SQL語句,而不需要用存儲過程、用戶自定義函數(shù)或C#中的循環(huán),就可以解決各種斷號問題,當(dāng)然為了性能方面還可以再做優(yōu)化,在此不列出。  

標(biāo)簽:通化 本溪 鹽城 邢臺 宜春 遼源 巴彥淖爾 朔州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《用一句SQL解決SQL中斷號問題 推薦》,本文關(guān)鍵詞  用,一句,SQL,解決,中斷,號,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《用一句SQL解決SQL中斷號問題 推薦》相關(guān)的同類信息!
  • 本頁收集關(guān)于用一句SQL解決SQL中斷號問題 推薦的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    99国产精品久久久久久久久久| 日韩精品一区二区三区在线| 欧美电视剧在线观看完整版| 国产专区欧美精品| 国产精品亚洲人在线观看| 国产精品久久久久影视| 一本到高清视频免费精品| 丁香亚洲综合激情啪啪综合| 国产精品一级片| 国产嫩草影院久久久久| 日韩免费在线观看| 久久精品夜色噜噜亚洲a∨| 久久久三级国产网站| 日本成人在线网站| 欧美日韩在线精品一区二区三区激情| 日本一二三四高清不卡| 99国产精品视频免费观看| 欧美一区二区黄| 日韩欧美第一区| 亚洲欧美日韩在线不卡| 亚洲视频在线一区二区| 久草热8精品视频在线观看| 国产日韩欧美制服另类| 亚洲理论在线观看| 91蜜桃视频在线| 在线观看日韩高清av| 国产黄人亚洲片| 欧美浪妇xxxx高跟鞋交| 欧美日韩精品一区二区| 久久综合久久99| 1000精品久久久久久久久| 欧美激情艳妇裸体舞| 亚洲国产成人av网| 免费久久99精品国产| 成人美女视频在线观看18| 99精品视频在线播放观看| 日韩一区二区免费高清| 国产亚洲欧美一区在线观看| 久久亚洲欧美国产精品乐播| 亚洲午夜av在线| 久久疯狂做爰流白浆xx| 久久久一区二区三区捆绑**| 国产精品麻豆一区二区| 国产麻豆午夜三级精品| 欧美熟乱第一页| 国产喂奶挤奶一区二区三区| 久久国产生活片100| 国产亚洲精久久久久久| 日韩电影在线观看电影| 91尤物视频在线观看| 亚洲已满18点击进入久久| 91国偷自产一区二区三区观看| 99久久久无码国产精品| 欧美mv日韩mv| 亚洲天堂a在线| 久久电影网站中文字幕| 色综合一个色综合亚洲| 制服丝袜一区二区三区| 国产亚洲精品免费| 理论电影国产精品| 色香蕉成人二区免费| 91国产丝袜在线播放| 久久影视一区二区| 亚洲午夜久久久久久久久电影院 | 日韩欧美一区在线观看| 精品1区2区在线观看| 日本欧美肥老太交大片| 色94色欧美sute亚洲线路一久 | 3atv一区二区三区| 中文字幕中文乱码欧美一区二区 | 不卡的av电影| 国产精品久久久一本精品| 国产乱码精品一区二区三| 成人高清伦理免费影院在线观看| 久久久亚洲午夜电影| 久久精品av麻豆的观看方式| www国产精品av| 久久成人免费网| 久久久不卡影院| 国产精品自拍在线| 在线观看免费亚洲| 亚洲国产一区二区在线播放| 97久久精品人人做人人爽50路 | 色哟哟一区二区在线观看| 久久精品亚洲国产奇米99| 国产乱子伦一区二区三区国色天香| 91 com成人网| 久久成人免费日本黄色| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产精品美女久久久久aⅴ| 久久久久久麻豆| 91精品国产黑色紧身裤美女| 欧美日韩高清一区二区| 99免费精品在线观看| 91丨九色porny丨蝌蚪| 在线这里只有精品| 欧美精品一区二区三区蜜臀| 亚洲精品成人天堂一二三| 亚洲乱码国产乱码精品精可以看 | 久久精品999| 免费的成人av| 99精品国产99久久久久久白柏| 欧美精品少妇一区二区三区 | 精品久久99ma| 麻豆精品精品国产自在97香蕉| 在线观看视频一区二区| 在线观看成人小视频| 欧美性猛交xxxxxx富婆| 欧美精品一区二区精品网| 亚洲午夜精品在线| 一本大道久久a久久综合婷婷| 日韩欧美一区二区免费| 蜜桃视频一区二区三区| 日韩成人一级大片| 日韩亚洲欧美在线| 激情亚洲综合在线| 国产精品久久夜| 欧美久久婷婷综合色| 免费在线成人网| 9人人澡人人爽人人精品| 日韩一区二区三区精品视频| 亚洲国产一二三| 在线影院国内精品| 亚洲6080在线| 欧美蜜桃一区二区三区| 久久精品免费看| 精品成人一区二区三区四区| 亚洲最大成人综合| 国产乱理伦片在线观看夜一区| 国产91精品免费| 日韩精品中文字幕一区| 国产专区欧美精品| 日欧美一区二区| 亚洲视频在线观看一区| 97久久精品人人澡人人爽| 国产精品久久久久久久久动漫| 国产在线视频不卡二| 亚洲三级免费电影| 国产日韩欧美高清在线| 91麻豆精品国产91久久久资源速度| 国产精品一区二区你懂的| 欧美一级搡bbbb搡bbbb| 色综合天天综合网国产成人综合天 | 亚洲欧美日韩中文字幕一区二区三区| 91精品国产一区二区| 欧美性猛片aaaaaaa做受| 精品亚洲国内自在自线福利| 亚洲欧洲日韩av| 亚洲男女毛片无遮挡| 亚洲高清久久久| 性欧美疯狂xxxxbbbb| 国产欧美日韩三级| 日本道色综合久久| 国产凹凸在线观看一区二区| 日日嗨av一区二区三区四区| 亚洲伦理在线精品| 亚洲精品日韩综合观看成人91| 日韩精品免费专区| 久久婷婷国产综合精品青草| 国产高清精品网站| 中文字幕亚洲精品在线观看| 欧美一区二区三区免费大片| 国产风韵犹存在线视精品| 洋洋成人永久网站入口| 51午夜精品国产| 国产亚洲欧美激情| 日本视频免费一区| 久久91精品久久久久久秒播| 亚洲综合男人的天堂| 亚洲国产aⅴ成人精品无吗| 激情综合网最新| 欧美猛男男办公室激情| 欧洲精品视频在线观看| 欧美一a一片一级一片| 欧美一区二区三区视频免费 | 亚洲国产精品久久不卡毛片 | 成人禁用看黄a在线| 日韩无一区二区| 亚洲综合激情网| 久久99精品久久久久久久久久久久| 肉肉av福利一精品导航| 青青草原综合久久大伊人精品优势| 麻豆国产精品官网| 亚洲一区在线观看免费观看电影高清 | 中文子幕无线码一区tr| 日韩美一区二区三区| 在线不卡中文字幕播放| 精品对白一区国产伦| 国产一区二区三区免费观看| 日韩三级免费观看| 亚洲va在线va天堂| 精品亚洲免费视频| 中国av一区二区三区| 亚洲综合色视频| 国产一区二区久久| 欧美日韩亚洲综合一区二区三区| 一区二区三区免费在线观看| 欧美性高清videossexo| 亚洲精品一线二线三线| 国产精品污网站|