看板 Database 關於我們 聯絡資訊
誤會一場,我以為你是要某個table的前 N筆。 SQL SERVER有內建一個表,spt_values select number from master..spt_values where type='p' 這樣可以撈出一個從 1開始的整數列,到多大就忘了,好像是 4096吧 請問列出數列的用意為何?感覺寫成 SQL的 function之後使用會比較順手 然後,用迴圈不一定就比較慢…可能是差不多慢XD 在意效能還是實際測試吧! ※ 引述《evernever (NeverEver)》之銘言: : 標題: [SQL ] MS-SQL 2008 如何 Select 1 to n? : 時間: Fri Apr 17 13:58:09 2009 : : 請問各位大大 : 如果我有一個 StoreProcedure, input @n int : 我該如何傳回 Table 值 1 to n? : : 例如: : exec MySP 100 exec MySP 1024 : : n n : ----------- ----------- : 1 1 : 2 2 : 3 3 : . . : . . : . . : 98 1022 : 99 1023 : 100 1024 : : (100 row(s) affected) (1024 ro(s) affected) : : ==================================== : 目前想到的辦法只有笨笨的用 While loop跑 : 一個一個塞進Temp table : 在最後一次select 出來 : : 但這樣當數字越大, 好像就會越慢 : 不知道有沒有更好的方法... : : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 61.88.112.42 : ※ 編輯: evernever 來自: 61.88.112.42 (04/17 14:00) : 推 grence:select top 1024 * from table order by n 04/17 19:25 : → evernever:table是哪個table? 我只是純粹要1至n的整數而已 04/17 20:21 : → evernever:如果n=2048呢?table沒那麼多紀錄的話,就沒辦法了 04/17 20:27 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.201.179
evernever:我的只有到2047. 寫成function也是可以. 但還是沒好方法 04/19 07:43
迴圈不一定就慢; 效能這檔事…我是抓不準, 通常都是同一個問題想幾個不同的解法,一個一個試,哪個快就用哪個。 所以我好奇的是你遇到什麼問題、狀況,有沒有不用一一列舉數列的解法。 ※ 編輯: grence 來自: 61.229.193.203 (04/23 03:48)