PDA

View Full Version : Làm ơn chỉ cho mình cách SELECT này các bạn ơi.!!!



Trinh_Canh_Uy_Long
24-10-2003, 10:02
Mình muốn Select mỗi lần 10 dòng thì làm sao hả các bạn.
Có nghĩa là mình muốn Select từ dòng 1->10,hay là từ dòng 11->20.

blueskynight
25-10-2003, 06:38
bạn dùng câu lệnh thế này nhé
"select * from table limit 1,10"
nó sẽ cho bạn 10 record từ 1 đến 10

Trinh_Canh_Uy_Long
27-10-2003, 05:54
blueskynight oi!!!
Sao mình làm theo cách của bạn mà nó không được dzậy.
Mình đang sử dụng MS SQL2000.

blueskynight
27-10-2003, 06:54
Trong MS bạn dùng lệnh thế này ne`
"select top 10 * from table_name" *** cho ban 10 record đầu, thử xem nha

Trinh_Canh_Uy_Long
27-10-2003, 11:30
"select top 10 * from table_name"
Cái này mình cũng biết lâu rùi nhưng mình cũng chân thành cảm ơn bạn đã giúp mình.
Nhưng mình lại muốn select từ dòng 11 đến dòng 20 thì lam cách gì dzậy bạn.

blueskynight
27-10-2003, 15:38
Bạn thử làm như thế này nha
SELECT TOP 10 Id
FROM Table1
WHERE Id in (SELECT TOP 20 Id
FROM Table1
ORDER BY Quantity DESCENDING)
ORDER BY Quantity ASCENDING
chuc ban thanh công,

Trinh_Canh_Uy_Long
29-10-2003, 11:08
Cám ơn blueskynight nha,nhưng mình muốn select từ dòng 11-20 rồi 21-30(có nghĩa là mỗi lần mình select 10 dòng liên tiếp nhau) thì phải làm sao dzậy???

blueskynight
29-10-2003, 13:08
Vậy thì mình chịu thôi, vì MS SQL ko cho select ở giữa như vậy, bạn làm được thì chỉ cho mình với nha. A` cho mình hỏi tí nha(cá nhân thôi, bạn co phải là Trinh học Sư phạm Toán tin DN ko vậy?)

lam_lvl
29-10-2003, 16:21
Với chút khả năng ít ỏi của tui về MS SQL, tui có thể có ý kiến về vấn đề của bạn thế này.

Bạn nghĩ xem, nếu mình cần truy vấn 10 mẫu tin đầu tiên trong môt table thì :

SELECT TOP 10 * FROM tableName

nhưng bạn lại muốn select từ mẫu tin thứ 11 - 20, tôi có thể hiểu được ý của bạn dùng để làm gì !, nếu không lầm thì bạn chỉ muốn mỗi lần hiển thị lên datagrid chỉ 10 mẩu tin và khi nhấn Next thì sẽ hiển thị 10 mẫu tin kế tiếp ! tôi đoán có đúng như thế không??.
Nếu bạn có ý định như thế thì thứ nhất đã làm sai cách !
chẳng hạn như trong Recordset có propety Size, bạn có thể cho nó hiễn thị bao nhiêu tùy ý chứ không cần phải dùng câu lệnh select của SQL can thiệp, tức nhiên phải thêm nhiều method hỗ trợ cho việc nhấn nút.
Nếu ý bạn không phãi như thế thì tôi vẫn còn cách để góp ý với bạn :

Bản thân MS SQL không hề có khái niệm truy vấn ..giữa như thế, nhưng điều đó không có nghĩa là không làm được.
Tại sao bạn không truyền vào 2 tham số ?
Tham số ĐẦU và tham số CUỐI, và 2 tham số này được truy xuất từ một câu lệnh select khác.

Tôi có thể minh họa thề này :
set @intCount = (select count(*) from tableName)
set @param1 = 11 --ví dụ như thế
set @param2 = 20 --tôi chỉ minh họa hard code

Bạn có thể thử xem .
Chúc may mắn