作者grence (多想两分钟 = =")
看板Database
标题Re: [问题] MS-SQL 2008 如何 Select 1 to n?
时间Sat Apr 18 01:54:07 2009
误会一场,我以为你是要某个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
1F:推 evernever:我的只有到2047. 写成function也是可以. 但还是没好方法 04/19 07:43
回圈不一定就慢;
效能这档事…我是抓不准,
通常都是同一个问题想几个不同的解法,一个一个试,哪个快就用哪个。
所以我好奇的是你遇到什麽问题、状况,有没有不用一一列举数列的解法。
※ 编辑: grence 来自: 61.229.193.203 (04/23 03:48)