> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> توثيق OFFSET

# عبارة OFFSET FETCH

يتيح لك `OFFSET` و`FETCH` استرجاع البيانات على دفعات. وهما يحددان كتلة من الصفوف تريد جلبها باستعلام واحد.

```sql theme={null}
-- SQL Standard style:
[OFFSET offset_row_count {ROW | ROWS}] [FETCH {FIRST | NEXT} fetch_row_count {ROW | ROWS} {ONLY | WITH TIES}]

-- MySQL/PostgreSQL style:
[LIMIT [n, ]m] [OFFSET offset_row_count]
```

يمكن أن تكون قيمة `offset_row_count` أو `fetch_row_count` رقمًا أو ثابتًا حرفيًا. ويمكنك حذف `fetch_row_count`؛ إذ تكون قيمته افتراضيًا 1.

يحدد `OFFSET` عدد الصفوف التي يجب تخطيها قبل بدء إرجاع الصفوف من مجموعة نتائج الاستعلام. ويؤدي `OFFSET n` إلى تخطي أول `n` صفوف من النتيجة.

كما أن `OFFSET` السالب مدعوم أيضًا: إذ يؤدي `OFFSET -n` إلى تخطي آخر `n` صفوف من النتيجة.

و`OFFSET` الكسري مدعوم أيضًا: `OFFSET n` - إذا كان 0 \< n \< 1، فسيتم تخطي أول n \* 100% من النتيجة.

مثال:
• `OFFSET 0.1` - يتخطى أول 10% من النتيجة.

> **ملاحظة**
> • يجب أن يكون الكسر رقم [Float64](/ar/reference/data-types/float) أقل من 1 وأكبر من صفر.
> • إذا نتج عن العملية الحسابية عدد كسري من الصفوف، فسيُقرَّب إلى العدد الصحيح التالي.

يحدد `FETCH` الحد الأقصى لعدد الصفوف التي يمكن أن تتضمنها نتيجة الاستعلام.

يُستخدم الخيار `ONLY` لإرجاع الصفوف التي تأتي مباشرة بعد الصفوف التي تم تخطيها بواسطة `OFFSET`. وفي هذه الحالة، يكون `FETCH` بديلًا عن العبارة [LIMIT](/ar/reference/statements/select/limit). على سبيل المثال، الاستعلام التالي

```sql theme={null}
SELECT * FROM test_fetch ORDER BY a OFFSET 1 ROW FETCH FIRST 3 ROWS ONLY;
```

مطابق تمامًا للاستعلام

```sql theme={null}
SELECT * FROM test_fetch ORDER BY a LIMIT 3 OFFSET 1;
```

يُستخدم الخيار `WITH TIES` لإرجاع أي صفوف إضافية تتساوى في المركز الأخير ضمن مجموعة النتائج وفقًا لعبارة `ORDER BY`. على سبيل المثال، إذا كانت قيمة `fetch_row_count` مضبوطة على 5، ولكن كان هناك صفّان إضافيان يطابقان قيم أعمدة `ORDER BY` في الصف الخامس، فستتضمن مجموعة النتائج سبعة صفوف.

<Note>
  وفقًا للمعيار، يجب أن تسبق عبارة `OFFSET` عبارة `FETCH` إذا وُجدا معًا.
</Note>

<Note>
  قد تعتمد الإزاحة الفعلية أيضًا على إعداد [offset](/ar/reference/settings/session-settings#offset).
</Note>

<div id="examples">
  ## أمثلة
</div>

جدول الإدخال:

```text theme={null}
┌─a─┬─b─┐
│ 1 │ 1 │
│ 2 │ 1 │
│ 3 │ 4 │
│ 1 │ 3 │
│ 5 │ 4 │
│ 0 │ 6 │
│ 5 │ 7 │
└───┴───┘
```

استخدام الخيار `ONLY`:

```sql title="Query" theme={null}
SELECT * FROM test_fetch ORDER BY a OFFSET 3 ROW FETCH FIRST 3 ROWS ONLY;
```

```text title="Response" theme={null}
┌─a─┬─b─┐
│ 2 │ 1 │
│ 3 │ 4 │
│ 5 │ 4 │
└───┴───┘
```

استخدام الخيار `WITH TIES`:

```sql title="Query" theme={null}
SELECT * FROM test_fetch ORDER BY a OFFSET 3 ROW FETCH FIRST 3 ROWS WITH TIES;
```

```text title="Response" theme={null}
┌─a─┬─b─┐
│ 2 │ 1 │
│ 3 │ 4 │
│ 5 │ 4 │
│ 5 │ 7 │
└───┴───┘
```
