污网站视频在线观看,国产精品激情偷乱一区二区,caoporn超碰随时会被屏蔽,madou精品一区二区

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

請教SQL達人。請教SQL達人。請教SQL達人。請教SQL達人。請教SQL

整理時間:2012-07-20 15:09 熱度:°C

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

關(guān)于網(wǎng)站 | 網(wǎng)站聲明 | 用戶反饋 | 合作伙伴 | 聯(lián)系我們
Copyright 2012年2月8日 蘇ICP備12030052號-3
日韩夜夜精| 成人拍拍免费视频| 国产无码久久久无码| 99日本精品99久久久久久久| 自拍自产在线免费观看| 91JK亚洲精品| 亚洲+高清+无码+裸体+诱惑| 日本美女福利在线| 美女肌肌桶肌肌在线现看网站| 最新草b网| 精品国产乱码久久久福利视频| AAA级极品无码久久久| 国产91P中文字幕| 偷窥自拍 视频一区 日韩 人妻| 性欧美综合网| 久久精品大字幕| 婷婷激情综合五月天轮奸| 热女人妻视频| 日本女优一本无码中文字幕| 日韩又大又粗又爽视频| xxxx少妇后入内射| 午夜激情精品| 鸡吧插小穴穴视频免费观看| 麻豆精品国产三级在线观看| 国产又大啪啪啪| 亚洲中文字幕啪啪啪啪啪| 欧美区一区二区哦哦视频| 在线看三级| 欧美综合无码在线视频| 国产精品99永久一区一区| 久操中文精品| 精品女同av一区二区三区| 2017精品狠狠操| 欧美精产国品一区二| 麻豆视频国产精品久热| 国产麻豆专区| 少妇高潮大叫一区二区的视频 | 丰满丝袜熟女HD二区| jlzzjlzz亚洲乱熟无码| 黄欧美在线| 黑人大鸡巴干屄视频 |