精品亚洲国产成人AV制服丝袜,精品久久久呻吟,xxx.cc国产精品,国产高清无码A按摩

VimIy微民網(wǎng),讓世界傾聽(tīng)微民的聲音! 設(shè)為首頁(yè) | 加入收藏 | 網(wǎng)站地圖
當(dāng)前位置:主頁(yè) > 微博精選 >

請(qǐng)教SQL達(dá)人。請(qǐng)教SQL達(dá)人。請(qǐng)教SQL達(dá)人。請(qǐng)教SQL達(dá)人。請(qǐng)教SQL

整理時(shí)間:2012-07-20 15:09 熱度:°C

一個(gè)表里,一列數(shù)據(jù):
   
   00000001
   00000002
   00000003
   ...
   ...
   20000001
   20000001
   ...
   21000099
   33000001
   33000002
   ...
   55000001
   55000002
   ...
   59999999
   80000000
   80000001
   ...
   
   簡(jiǎn)單說(shuō),這一列數(shù)據(jù)中,是大量連續(xù)的,但是在某些地方,會(huì)突然出現(xiàn)100000到30000000的跨度。
   那么,怎么取出,大于10000跨度的某一行(第一次大于100000跨度大一行,或者第二次等等),大于3000000跨度的以如此。
   
   用什么語(yǔ)句或者腳本,給個(gè)思路也行。 看不懂比如0樓的例子,33000001是第一個(gè)突然的跨度,它比之前一行的21000099突然跨出一大截。
   如何用sql寫法,如何發(fā)現(xiàn)這個(gè)33000001?跨度啥意思??jī)尚兄睿?
   寫個(gè)存儲(chǔ)過(guò)程應(yīng)該就行了。。。說(shuō)數(shù)據(jù)庫(kù), Oracle的話有辦法, 其他的就要寫程序了.
   PL/SQL可以用cursor 來(lái)做.sql估計(jì)沒(méi)法解決這個(gè)問(wèn)題
   
   直接查詢?nèi),然后在本地做這個(gè)操作不要沉啊不要沉.............
   
   如果塞到臨時(shí)表里,多加一個(gè)序號(hào),按照序號(hào)逐行檢測(cè)是不是下一行比前一行大1,而不是大了很多(大于一個(gè)變量)。
   不過(guò)這么做感覺(jué)太野蠻了,遍歷全表,效率很差。沒(méi)看懂,等高人,學(xué)姿勢(shì)不是oracle,是sybase....我不想添加一個(gè)子過(guò)程啊
   
   一個(gè)表里,一列數(shù)據(jù):
   
   00000001
   00000002
   00000003
   ...
   ...
   
   ...
   21000099
   33000001
   33000002
   ...
   55000001
   55000002
   ...
   59999999
   80000000
   80000001
   ...
   
   簡(jiǎn)單說(shuō),這一列數(shù)據(jù)中,是大量連續(xù)的,但是在某些地方,會(huì)突然出現(xiàn)100000到30000000的跨度。
   那么,怎么取出,大于10000跨度的某一行(第一次大于100000跨度大一行,或者第二次等等),大于3000000跨度的以如此。
   
   用什么語(yǔ)句或者腳本,給個(gè)思路也行。
   
   關(guān)于跨度那段我理解不能
   
   
   標(biāo)紅是你寫錯(cuò)了么? Post by 毒邪 (2012-07-18 18:17)
   
   是寫錯(cuò)的。不過(guò)真是環(huán)境的確這樣,有重復(fù)的數(shù)據(jù)。
   
   目前就是要找到那個(gè)“跨度”。簡(jiǎn)單說(shuō)就是1,2,3,4,15,16,17這些數(shù),要找到4或者15,因?yàn)?和15之間差距不是1.臨時(shí)表加行號(hào)后排序?oracle的話,這樣也許可以:
   
   select t1.* from t t1, t t2 where t1.rownum = t2.rownum+1 and t1.數(shù)據(jù)列 > t2.數(shù)據(jù)列 + n (n是閾值,你自己定義) order by t1.數(shù)據(jù)列先給它們加上rownumber,然后找合適結(jié)果的rownumber最小值.這樣?相鄰兩條記錄取值辨斷是否相差1,然后一波帶走。 亂說(shuō)的
   
   沒(méi)有序列的表大家都沒(méi)轍
   然后你又嫌棄做張臨時(shí)表產(chǎn)生序列判斷太耗資源- -
   
   呵呵~~~ Post by ztbsuper (2012-07-18 18:20)
   
   有沒(méi)有別的辦法,實(shí)表有幾百萬(wàn)行數(shù)據(jù)....臨時(shí)表加序號(hào)也會(huì)很慢啊。
   
   有沒(méi)有辦法,比如同一個(gè)表,自己和自己關(guān)聯(lián),加各種函數(shù)去判斷找出...樓主的意思應(yīng)該是
   找出存在某字段值差值較大現(xiàn)象的相鄰兩條記錄中的第二條
   
   需要同時(shí)訪問(wèn)同一張表的兩條記錄,SQL貌似沒(méi)這功能給樓主一個(gè)思路
   
   假設(shè)這一列數(shù)據(jù)是從a開(kāi)始的
   
   因?yàn)槟阋樵兊淖钚】缍仁?0000,你可以設(shè)置一個(gè)9999的間距
   
   每次的value從a開(kāi)始
   1 查詢?cè)摿兄禐関alue的數(shù)據(jù)
   2 如果value存在,對(duì)value+9999
   3 如果value不存在,查詢大于value的最小值。該值作為結(jié)果之一,并且將value設(shè)置為該值。繼續(xù)
   
   oracle的話,這樣也許可以:
   
   select t1.* from t t1, t t2 where t1.rownum = t2.rownum+1 and t1.數(shù)據(jù)列 > t2.數(shù)據(jù)列 + n (n是閾值,你自己定義) order by t1.數(shù)據(jù)列l(wèi)z啊,這個(gè)問(wèn)題不難啊……你用游標(biāo)做循環(huán),然后定義一個(gè)標(biāo)準(zhǔn),發(fā)現(xiàn)第二個(gè)數(shù)字比前面一個(gè)大太多就把這個(gè)數(shù)字加到一個(gè)表里面不就完了?因?yàn)檫@個(gè)只做了減法,所以性能不會(huì)很差……

關(guān)于網(wǎng)站 | 網(wǎng)站聲明 | 用戶反饋 | 合作伙伴 | 聯(lián)系我們
Copyright 2012年2月8日 蘇ICP備12030052號(hào)-3
中文亚洲日韩欧美| 99re视频在线| 国产精品日本在线观看| 开心播播色网| 亚洲国产在| 九九九九精品九九| 久久精品无码专区免费东京热| 亚洲伊人片| 日本熟女视频| 四房色播开心激情网| 黄av网站在线观看| 超碰人人做人人爱| 久久新视| 亚洲日韩欧美在线一区二区| 4399中文字幕| 亚洲色一区二区| 色呦呦精品在线观看| 无码高清视频一本| 日韩欧美大片| 国产精品久久久小电影| 真实国产乱子伦视频对白| 五月激情六月色| 久草超碰| 九九精品99久久久香蕉| 极品少妇pP| 99久久精品费精品国产| 亚洲激情小说分类欧美| 人妻少妇系列| 欧美日韩一区二区人妻| xxx免费在线| 三级黄色网址| av免费观看久久| 国产欧美另类久久精品蜜芽| www..我要看黄片| 亚洲黄色日本电影| 欧美黄片观看| 日韩AV换脸在线| 久久精品国产亚洲AV天海翼 | 91成人精品视频| 欧美五区在线观看视频| 风间由美久久久无码人妻|