שלח תשובה

זירת השאלות

299
צפיות
4
תשובות

קבלת חלק מהתשובה ב SQL

,‏ 8 בנובמבר, 2005

אני רוצה לבצע שאילתא SQL אבל אני לא רוצה את כל התשובה ביחד,
על העיקרון שיש בכל אתרי החיפוש, מחזירים 20 תשובות ראשונות, ניתן לגלוש ל20 הבאות (או לדלג עליהם ולגשת ל 20 שבהמשך וכד).
בפעם הראשונה זה פשוט TOP
השאלה מה אני עושה בפעם השניה והלאה (תתחיל מהנתון ה X)

אפשר לבצע שאילתא על הכל (עד סוף הקטע הרצוי) ולדלג (על הקטע הלא רצוי) בקוד לפני ההצגה ללקוח אבל נראה לי לא הגיוני לבקש שאילתא של 300 שורות כי אני רוצה את השורות 280 – 300

תודה.

תגיות:

4 תשובות

  1. fishF הגיב:

    הוסף LIMIT לשאילתה
    ניתן להוסיף לכל שאילתה את הפונקציה LIMIT.
    לפונקציה שני ארגומנטים – כמה רשומות להציג והחל באיזו רשומה :

    SELECT * FROM customer LIMIT 279,20

    תציג את הרשומות החל ב 280 וכלה ב 300 (שהן לצורך העיניין 20 הרשומות הרלוונטיות בדף 15).

  2. gilad123 הגיב:

    SQL SERVER 2000 לא מכיר LIMIT
    דבר ראשון תודה על התשובה המהירה.
    הבעיה שאני עובד על SQL SERVER 2000 (טעות שלי שלא ציינתי בשאלה) והוא לא מכיר את LIMIT
    ההגבלות היחידות שמצאתי שם הם TOP ו  SET ROWCOUNT ששניהם מגבילים אבל לוקחים רק את החלק העליון של התשובה

    למישהו יש רעיון אחר?

  3. זהר פלד הגיב:

    שאילתה פנימית.

    SELECT TOP 10 *
    FROM tableName
    WHERE orderColumn NOT IN (
    select top 10 orderColumn from tableName order by orderColumn
    )
    ORDER BY orderColumn

    חוצמזה, יש מאמר באתר על sp שיודע לבצע גם חלוקה לעמודים.

שלח תשובה