亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SQL語句查詢結(jié)果額外添加一列序號(hào)自動(dòng)增加

系統(tǒng) 2824 0
?
?

一、讓SELECT查詢結(jié)果額外增加自遞的偽序號(hào)列
在基于數(shù)據(jù)庫的系統(tǒng)的開發(fā)過程中,有時(shí)需要讓select返回的查詢結(jié)果中存在一列實(shí)際的數(shù)據(jù)庫表中并不存在的序號(hào)列,即在查詢結(jié)果中額外增加自增的偽序號(hào)列。從網(wǎng)絡(luò)上可以找到一些解決方案,但總結(jié)起來主要有三種:
1.使用數(shù)據(jù)庫自帶的序號(hào)函數(shù)實(shí)現(xiàn)
Oracle提供的ROWNUM,SQL Server 2005提供的RANK,ROW_NUMBER都可以比較簡(jiǎn)單地實(shí)現(xiàn)這種需求,不過這種方法對(duì)我并不適用,因?yàn)槲矣玫氖荢QL SERVER 2000。

2.使用臨時(shí)表實(shí)現(xiàn)
SQL的IDENTITY函數(shù)可以提供自增的序號(hào),但只能用在帶有INTO table子句的SELECT語句中,所以如果可以使用臨時(shí)表的情況下可以使用這種實(shí)現(xiàn)方法。和第一種方法一樣,這種實(shí)現(xiàn)方法對(duì)我也不適用,因?yàn)楝F(xiàn)在的項(xiàng)目規(guī)定不能使用臨時(shí)表。
eg:
SELECT IDENTITY(INT,1,1) as seq,field1,field2,...,fieldn INTO tmpTableName FROM srcTableName;
SELECT * FROM tmpTableName;
DROP TABLE tmpTableName;

3.使用SQL標(biāo)準(zhǔn)語法實(shí)現(xiàn)
第三種思路是:將結(jié)果集中能確定一行數(shù)據(jù)唯一性的某列或多列組合成標(biāo)識(shí)符,再把結(jié)果集中小于等于標(biāo)識(shí)符的記錄數(shù)合計(jì)成一列,從而滿足需求。
eg:
SELECT (SELECT COUNT(id) FROM srcTableName AS tbl1 WHERE tbl1.id<=tbl2.id) as seq,field1,field2,...,fieldn
FROM srcTableName AS tbl2 ORDER BY 1 ;
二、使用INSERT添加行
INSERT語句可給表添加一個(gè)或多個(gè)新行,增加單行的語法沒什么可說的,此處描述的是使用多行的情況,語法為:
INSERT INTO destTable (field1,field2,...,fieldn) FROM SELECT field1,field2,...,fieldn FROM srcTable
在維護(hù)系統(tǒng)時(shí),經(jīng)常能在遺留代碼里發(fā)現(xiàn)這樣的新增多條記錄實(shí)現(xiàn)方式:
1.循環(huán)構(gòu)造多條插入語句,再執(zhí)行一次批處理保存。
2.循環(huán)構(gòu)造多條插入語句,每條語句執(zhí)行一次保存。
對(duì)于使用第一種方式來新增從其他數(shù)據(jù)庫表中選擇的記錄的做法,我覺得是對(duì)數(shù)據(jù)庫資源的浪費(fèi),因?yàn)橥ǔG闆r下這種實(shí)現(xiàn)方式完全可以通過一條INSERT語句實(shí)現(xiàn)。
可能你會(huì)說主鍵的生成是一個(gè)問題,但我并不認(rèn)為這會(huì)成為問題,在select時(shí)生成主鍵并不困難,上文就提到了內(nèi)容就可以在此處使用。對(duì)于采用第二種方法的“先輩”,我只能徹底無語,因?yàn)檫@種方式根本就沒有考慮數(shù)據(jù)庫的執(zhí)行效率和事務(wù)的完整性,一旦保存過程被中斷就會(huì)導(dǎo)致數(shù)據(jù)的不完整問題的出現(xiàn)。

SQL語句查詢結(jié)果額外添加一列序號(hào)自動(dòng)增加


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久精品国产6699国产精 | 亚洲精品一区二区在线观看 | 亚洲色视频在线播放网站 | 久久精品6 | 亚洲国产成人精品一区91 | 婷婷综合五月中文字幕欧美 | 久久久久久a亚洲欧洲aⅴ | 国产我不卡 | 99久久久国产精品免费牛牛四川 | 很黄的视频网站 | 四虎国产精品免费五月天 | 亚洲一二三 | 91视频看 | 亚洲性在线 | 在线看国产 | 中文字幕久久久久久精 | 99视频在线观看高清 | 夜色伊人 | 日韩中文字幕在线观看 | 久久久99精品免费观看精品 | 国产精品成人麻豆专区 | 欧美成人性视频在线黑白配 | 韩国欧美一级毛片免费 | 九九精品影院 | 国产精品久久久久久影视 | a一级网站 | 欧美成人免费一级人片 | 中文字幕在线观看亚洲 | 国产精品400部自产在线观看 | 国产成人一区二区三区精品久久 | 中文字幕亚洲日韩无线码 | 5388国产亚洲欧美在线观看 | 四虎www成人影院观看 | 色噜噜五月综合激情久久爱 | 天天拍天天干 | 亚洲视频不卡 | 91婷婷色涩涩 | 色四虎 | 奇米第九色 | 色偷偷91久久综合噜噜噜 | 免费视频久久久 |