上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 1 樓
|
發表於: 星期二 八月 23, 2005 9:53 pm 文章主題: SQL Server 能否做到 Limit 功能呢? |
|
|
各位先進您好:
在 Mysql 中,可以使用這樣的語法 Select * from custom limit 50,100
其中 limit 50,100 , 可以取出第50-100筆資料
但,SQL Server 中,似乎沒有這樣的參數,
有沒有什辦方法,做出相同的要求呢? |
|
回頂端 |
|
|
bin1x
註冊時間: 2004-08-27 文章: 462
第 2 樓
|
發表於: 星期二 八月 23, 2005 10:05 pm 文章主題: |
|
|
如果把remote view 擺在vfp 中
我用between(recno(),50,100) 問題就解決了
先決條件是remote view無任何過濾條件,不然順序有變,資料就無意義了 |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4212 來自: Taipei,Taiwan
第 3 樓
|
發表於: 星期二 八月 23, 2005 10:28 pm 文章主題: |
|
|
M$ SQL SERVER 2005 才有類似功能.
不過,也是有變通方式啦. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 4 樓
|
發表於: 星期二 八月 23, 2005 11:05 pm 文章主題: |
|
|
bin1x您好:
抱歉,我沒講清楚,其實,Mysql中即使有用 order by 和 where 參數,依然可以取出第50-100筆,
比如
Select * from custom where address='高雄巿' order by cust_id limit 50,100
所以,它和您所指的between(recno(),50,100),是不相同的
還有其它方法嗎?
ckp6250 在 星期二 八月 23, 2005 11:09 pm 作了第 1 次修改 |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 5 樓
|
發表於: 星期二 八月 23, 2005 11:07 pm 文章主題: |
|
|
syntech前輩:
感謝提點,變通方法想到了,再謝再謝!
ckp6250 在 星期三 八月 24, 2005 9:30 am 作了第 1 次修改 |
|
回頂端 |
|
|
bin1x
註冊時間: 2004-08-27 文章: 462
第 6 樓
|
發表於: 星期三 八月 24, 2005 8:06 am 文章主題: |
|
|
ckp6250 寫到: | bin1x您好:
抱歉,我沒講清楚,其實,Mysql中即使有用 order by 和 where 參數,依然可以取出第50-100筆,
比如
Select * from custom where address='高雄巿' order by cust_id limit 50,100
所以,它和您所指的between(recno(),50,100),是不相同的
還有其它方法嗎? |
你指的這件事就更有意思了
remote view 不是有設filter,不設filter 時,是完整的table
where 是我指的filter
order by 還是要,between 取代limit
其實類似的語法informix是有的
只是sql語法 到foxpro 時,我好像沒看過
m$sql要翻書才知道 |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 7 樓
|
發表於: 星期三 八月 24, 2005 9:02 am 文章主題: |
|
|
bin1x您好:
您指的我明白,但remote view 之後的Filter和order by , 它的recno() 還能準確嗎?
上例 Mysql 中的Select * from custom where address='高雄巿' order by cust_id limit 50,100
能取出『住在高雄巿且按身份證排序的第50-100名』,remote view 中的 Recno()是反應真實的實體Table的recno()或取回後的Recno()?這兩者是有差別的 |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4212 來自: Taipei,Taiwan
第 8 樓
|
發表於: 星期三 八月 24, 2005 9:53 am 文章主題: |
|
|
其實就是作一個假欄位是 order 順序,
再依欄位作 between 動作.
目前的 vfp,access,m$ sql server 都只支援 top xxxxx 而已,
取中間幾筆就很麻煩. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 9 樓
|
發表於: 星期四 八月 25, 2005 10:17 am 文章主題: |
|
|
syntech 兄您好:
經您提醒,問題可以解決了,是不是類似這樣呀
Select identity(int) As RecNo , * from xxx order by xxx where RecNo between 50 and 100 |
|
回頂端 |
|
|
bin1x
註冊時間: 2004-08-27 文章: 462
第 10 樓
|
發表於: 星期五 八月 26, 2005 8:31 am 文章主題: |
|
|
想起來了
informix是rowid 也是系統變數,就像recno()一樣好用
用identity 查了一下
有identity的使用方法 |
|
回頂端 |
|
|
|