bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

SQLServer怎么獲得用戶新或前n條訂單-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“SQLServer怎么獲得用戶新或前n條訂單”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)專注于青岡網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供青岡營銷型網(wǎng)站建設,青岡網(wǎng)站制作、青岡網(wǎng)頁設計、青岡網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務,打造青岡網(wǎng)絡公司原創(chuàng)品牌,更為您提供青岡網(wǎng)站排名全網(wǎng)營銷落地服務。

首先我們在Order表中,創(chuàng)建一個索引:

CREATEUNIQUEINDEXidx_eid_odD_oidDONOrders(EmployeeID,OrderDateDESC,OrderIDDESC)

多個OrderId是為了在OrderData相同的情況下,按訂單號倒序,是個輔助屬性。

方法1:

SELECTEmployeeID,OrderIDFROMOrdersASO1WHEREOrderID=(SELECTTOP(1)OrderIDFROMOrdersASO2WHEREO1.EmployeeID=O2.EmployeeIDORDERBYOrderDateDESC,OrderIDDESC)

假如想獲得前n條訂單信息,把=號改成IN,然后TOP(n)就可以了。

不論是取一條還是多條,即使有索引,數(shù)據(jù)多的情況下,也是最慢的。

方法2:

SELECTO.EmployeeID,O.OrderIDFROM(SELECTEmployeeID,(SELECTTOP(1)OrderIDFROMOrdersASO2WHEREE.EmployeeID=O2.EmployeeIDORDERBYOrderDateDESC,OrderIDDESC)ASOrderIDFROMEmployeesASE)ASEOINNERJOINOrdersASOONEO.OrderID=O.OrderID

方法2只能取一條信息,不能取多條信息。

在取一條的情況下,這個要比方法1快多了,因為用戶相比訂單信息要少很多。

SQLServer獲得用戶新或前n條訂單的SQL語句有哪些

方法3:

SELECTE.EmployeeID,O.OrderIDFROMEmployeesASECROSSAPPLY(SELECTTOP(1)*FROMOrdersASO1WHEREE.EmployeeID=O1.EmployeeIDORDERBYO1.OrderDateDESC,O1.OrderIDDESC)ASO

這個應用到了SQLServer2005或更高版本的一些新特性,這個效率要比方法2還好。

假如想取得多條,只需更改TOP(n)即可。

方法4:

SELECTO1.EmployeeID,O1.OrderIDFROMOrdersO1JOIN(SELECTROW_NUMBER()OVER(PARTITIONBYEmployeeIDORDERBYOrderDateDESC,OrderIDDESC)ASRowNumber,*FROMOrdersASOT)ASO2ONO1.OrderID=O2.OrderIDWHEREO2.RowNumber=1

這個ROW_NUMBER函數(shù)也是在SQLServer2005后新增的,使用這個和方法3查不多,甚至比3更好,但要注意一點是先按EmployeeID分區(qū),然后再排序。

結合以上方法,建議用方法3。

“SQLServer怎么獲得用戶新或前n條訂單”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)頁題目:SQLServer怎么獲得用戶新或前n條訂單-創(chuàng)新互聯(lián)
分享路徑:http://vcdvsql.cn/article12/dsdsdc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App設計企業(yè)建站移動網(wǎng)站建設做網(wǎng)站網(wǎng)站策劃建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司