الانتقال إلى المحتوى الرئيسي
تتيح لك دالة الجدول Values إنشاء مساحة تخزين مؤقتة تُملأ أعمدتها بالقيم. وهي مفيدة للاختبارات السريعة أو لإنشاء بيانات تجريبية.
الدالة Values غير حساسة لحالة الأحرف؛ أي إن VALUES وvalues كلاهما صالح.

الصيغة

الصيغة الأساسية لدالة الجدول VALUES هي:
VALUES([structure,] values...)
يُستخدم عادةً على النحو التالي:
VALUES(
    ['column1_name Type1, column2_name Type2, ...'],
    (value1_row1, value2_row1, ...),
    (value1_row2, value2_row2, ...),
    ...
)

الوسائط

  • column1_name Type1, ... (اختياري). String يحدّد أسماء الأعمدة وأنواعها. إذا أُهمِل هذا الوسيط، فستُسمّى الأعمدة c1 وc2 وهكذا.
  • (value1_row1, value2_row1). Tuples تحتوي على قيم من أي نوع.
يمكن أيضًا استبدال الـ tuples المفصولة بفواصل بقيم مفردة. في هذه الحالة، يُتعامل مع كل قيمة على أنها صف جديد. راجع قسم الأمثلة لمزيد من التفاصيل.

القيمة المُعادة

  • يُرجِع جدولًا مؤقتًا يحتوي على القيم المُمرَّرة.

أمثلة

Query
SELECT *
FROM VALUES(
    'person String, place String',
    ('Noah', 'Paris'),
    ('Emma', 'Tokyo'),
    ('Liam', 'Sydney'),
    ('Olivia', 'Berlin'),
    ('Ilya', 'London'),
    ('Sophia', 'London'),
    ('Jackson', 'Madrid'),
    ('Alexey', 'Amsterdam'),
    ('Mason', 'Venice'),
    ('Isabella', 'Prague')
)
Response
    ┌─person───┬─place─────┐
 1. │ Noah     │ Paris     │
 2. │ Emma     │ Tokyo     │
 3. │ Liam     │ Sydney    │
 4. │ Olivia   │ Berlin    │
 5. │ Ilya     │ London    │
 6. │ Sophia   │ London    │
 7. │ Jackson  │ Madrid    │
 8. │ Alexey   │ Amsterdam │
 9. │ Mason    │ Venice    │
10. │ Isabella │ Prague    │
    └──────────┴───────────┘
يمكن أيضًا استخدام VALUES مع قيم مفردة بدلًا من tuples. على سبيل المثال:
Query
SELECT *
FROM VALUES(
    'person String',
    'Noah',
    'Emma',
    'Liam',
    'Olivia',
    'Ilya',
    'Sophia',
    'Jackson',
    'Alexey',
    'Mason',
    'Isabella'
)
Response
    ┌─person───┐
 1. │ Noah     │
 2. │ Emma     │
 3. │ Liam     │
 4. │ Olivia   │
 5. │ Ilya     │
 6. │ Sophia   │
 7. │ Jackson  │
 8. │ Alexey   │
 9. │ Mason    │
10. │ Isabella │
    └──────────┘
أو من دون تحديد مواصفات صف ('column1_name Type1, column2_name Type2, ...' في الصيغة)، وفي هذه الحالة تُسمّى الأعمدة تلقائيًا. على سبيل المثال:
Query
-- tuples as values
SELECT *
FROM VALUES(
    ('Noah', 'Paris'),
    ('Emma', 'Tokyo'),
    ('Liam', 'Sydney'),
    ('Olivia', 'Berlin'),
    ('Ilya', 'London'),
    ('Sophia', 'London'),
    ('Jackson', 'Madrid'),
    ('Alexey', 'Amsterdam'),
    ('Mason', 'Venice'),
    ('Isabella', 'Prague')
)
Response
    ┌─c1───────┬─c2────────┐
 1. │ Noah     │ Paris     │
 2. │ Emma     │ Tokyo     │
 3. │ Liam     │ Sydney    │
 4. │ Olivia   │ Berlin    │
 5. │ Ilya     │ London    │
 6. │ Sophia   │ London    │
 7. │ Jackson  │ Madrid    │
 8. │ Alexey   │ Amsterdam │
 9. │ Mason    │ Venice    │
10. │ Isabella │ Prague    │
    └──────────┴───────────┘
Query
-- single values
SELECT *
FROM VALUES(
    'Noah',
    'Emma',
    'Liam',
    'Olivia',
    'Ilya',
    'Sophia',
    'Jackson',
    'Alexey',
    'Mason',
    'Isabella'
)
Response
    ┌─c1───────┐
 1. │ Noah     │
 2. │ Emma     │
 3. │ Liam     │
 4. │ Olivia   │
 5. │ Ilya     │
 6. │ Sophia   │
 7. │ Jackson  │
 8. │ Alexey   │
 9. │ Mason    │
10. │ Isabella │
    └──────────┘

عبارة VALUES القياسية في SQL

اعتبارًا من الإصدار 26.3، يدعم ClickHouse أيضًا عبارة VALUES القياسية في SQL كتعبير جدول ضمن FROM، كما في PostgreSQL وMySQL وDuckDB وSQL Server. وتُعاد كتابة هذه الصيغة داخليًا لاستخدام دالة الجدول values الموضحة أعلاه.
Query
SELECT * FROM (VALUES (1, 'a'), (2, 'b'), (3, 'c')) AS t(id, val);
Response
┌─id─┬─val─┐
│  1 │ a   │
│  2 │ b   │
│  3 │ c   │
└────┴─────┘
يمكن استخدامه ضمن CTEs:
Query
WITH cte AS (SELECT * FROM (VALUES (1, 'one'), (2, 'two')) AS t(id, name))
SELECT * FROM cte;
وفي عمليات JOIN:
Query
SELECT t1.id, t1.val, t2.val2
FROM (VALUES (1, 'a'), (2, 'b')) AS t1(id, val)
JOIN (VALUES (1, 'x'), (2, 'y')) AS t2(id, val2) ON t1.id = t2.id;
تتبع الأسماء المستعارة للأعمدة بعد AS t(col1, col2, ...) الصيغة القياسية في SQL لتسمية أعمدة الجداول المشتقة. وإذا أُهملت، تُسمّى الأعمدة c1 وc2 وهكذا.

راجع أيضًا

آخر تعديل في ٢٥ يونيو ٢٠٢٦