دوال المصفوفات
| الاسم | الوصف |
ARRAY
|
تعرض هذه الدالة ARRAY يحتوي على عنصر واحد لكل وسيطة إدخال
|
ARRAY_CONCAT
|
تدمج هذه الدالة مصفوفات متعددة في مصفوفة واحدة من النوع ARRAY
|
ARRAY_CONTAINS
|
تعرض هذه الدالة TRUE إذا كانت السمة ARRAY المحدّدة تحتوي على قيمة معيّنة
|
ARRAY_CONTAINS_ALL
|
تعرض هذه الدالة TRUE إذا كانت جميع القيم متوفّرة في ARRAY
|
ARRAY_CONTAINS_ANY
|
تعرض هذه الدالة TRUE إذا كانت أي من القيم متوفّرة في ARRAY
|
ARRAY_FILTER
|
تتم فلترة العناصر من ARRAY التي لا تستوفي شرطًا معيّنًا
|
ARRAY_FIRST
|
تعرض هذه الدالة العنصر الأول في ARRAY
|
ARRAY_FIRST_N
|
تعرض هذه الدالة أول عناصر n في ARRAY
|
ARRAY_GET
|
لعرض العنصر في فهرس معيّن في ARRAY
|
ARRAY_INDEX_OF
|
تعرض هذه الدالة فهرس أول ظهور لقيمة في ARRAY
|
ARRAY_INDEX_OF_ALL
|
تعرض هذه الدالة جميع فهارس قيمة معيّنة في ARRAY
|
ARRAY_LENGTH
|
تعرض عدد العناصر في ARRAY
|
ARRAY_LAST
|
تعرض هذه الدالة العنصر الأخير في ARRAY
|
ARRAY_LAST_N
|
تعرض هذه الدالة آخر عناصر n في ARRAY
|
ARRAY_REVERSE
|
لعكس ترتيب العناصر في ARRAY
|
ARRAY_SLICE
|
تعرض جزءًا من ARRAY
|
ARRAY_TRANSFORM
|
تحوّل العناصر في ARRAY من خلال تطبيق تعبير على كل عنصر
|
MAXIMUM
|
تعرض هذه الدالة الحد الأقصى للقيمة في ARRAY
|
MAXIMUM_N
|
تعرض أكبر قيم عددها n في ARRAY
|
MINIMUM
|
تعرض الحد الأدنى للقيمة في ARRAY
|
MINIMUM_N
|
تعرض أصغر قيم عددها n في ARRAY
|
SUM
|
تعرض هذه الدالة مجموع كل قيم NUMERIC في ARRAY.
|
JOIN
|
ينتج عن ذلك دمج العناصر في ARRAY كقيمة STRING.
|
ARRAY
البنية:
array(values: ANY...) -> ARRAY
الوصف:
تنشئ هذه الدالة صفيفًا من العناصر المحدّدة.
- إذا لم تكن هناك وسيطة، يتم استبدالها بـ
NULLفي الصفيف الناتج.
أمثلة:
| values | array(values) |
|---|---|
| () | [] |
| (1, 2, 3) | [1, 2, 3] |
| ("a", 1, true) | ["a", 1, true] |
| (1, null) | [1, null] |
| (1, [2, 3]) | [1, [2, 3]] |
ARRAY_CONCAT
البنية:
array_concat(arrays: ARRAY...) -> ARRAY
الوصف:
تدمج مصفوفتَين أو أكثر في مصفوفة ARRAY واحدة.
أمثلة:
| صفائف | array_concat(arrays) |
|---|---|
| ([1, 2], [3, 4]) | [1, 2, 3, 4] |
| (["a", "b"], ["c"]) | ["a", "b", "c"] |
| ([1]، [2]، [3]) | [1, 2, 3] |
| ([], [1, 2]) | [1, 2] |
Node.js
const result = await db.pipeline() .collection("books") .select(field("genre").arrayConcat([field("subGenre")]).as("allGenres")) .execute();
Swift
let result = try await db.pipeline() .collection("books") .select([Field("genre").arrayConcat([Field("subGenre")]).as("allGenres")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("genre").arrayConcat(field("subGenre")).alias("allGenres")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("genre").arrayConcat(field("subGenre")).alias("allGenres")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("genre").array_concat(Field.of("subGenre")).as_("allGenres")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(arrayConcat(field("genre"), field("subGenre")).as("allGenres")) .execute() .get();
متابعة
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.ArrayConcat(firestore.FieldOf("genre"), firestore.FieldOf("subGenre")).As("allGenres"), )). Execute(ctx)
ARRAY_CONTAINS
البنية:
array_contains(array: ARRAY, value: ANY) -> BOOLEAN
الوصف:
تعرض الدالة TRUE إذا تم العثور على value في array، وFALSE في الحالات الأخرى.
أمثلة:
| مصفوفة | القيمة | array_contains(array, value) |
|---|---|---|
| [1, 2, 3] | 2 | صحيح |
| [[1, 2], [3]] | [1, 2] | صحيح |
| [1, null] | قيمة فارغة | صحيح |
| "abc" | أي سعر | خطأ |
Node.js
const result = await db.pipeline() .collection("books") .select(field("genre").arrayContains(constant("mystery")).as("isMystery")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("genre").arrayContains(constant("mystery")).as("isMystery")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("genre").arrayContains(Constant("mystery")).as("isMystery")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("genre").arrayContains("mystery").alias("isMystery")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("genre").arrayContains("mystery").alias("isMystery")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("genre").array_contains("mystery").as_("isMystery")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(arrayContains(field("genre"), "mystery").as("isMystery")) .execute() .get();
متابعة
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.ArrayContains(firestore.FieldOf("genre"), "mystery").As("isMystery"), )). Execute(ctx)
ARRAY_CONTAINS_ALL
البنية:
array_contains_all(array: ARRAY, search_values: ARRAY) -> BOOLEAN
الوصف:
تعرض الدالة TRUE إذا تم العثور على جميع قيم search_values في array، وFALSE في الحالات الأخرى.
أمثلة:
| مصفوفة | search_values | array_contains_all(array, search_values) |
|---|---|---|
| [1, 2, 3] | [1, 2] | صحيح |
| [1, 2, 3] | [1, 4] | خطأ |
| [1, null] | [فارغ] | صحيح |
| [NaN] | [NaN] | صحيح |
| [] | [] | صحيح |
| [1, 2, 3] | [] | صحيح |
Node.js
const result = await db.pipeline() .collection("books") .select( field("genre") .arrayContainsAll([constant("fantasy"), constant("adventure")]) .as("isFantasyAdventure") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select( field("genre") .arrayContainsAll([constant("fantasy"), constant("adventure")]) .as("isFantasyAdventure") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("genre") .arrayContainsAll([Constant("fantasy"), Constant("adventure")]) .as("isFantasyAdventure") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("genre") .arrayContainsAll(listOf("fantasy", "adventure")) .alias("isFantasyAdventure") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("genre") .arrayContainsAll(Arrays.asList("fantasy", "adventure")) .alias("isFantasyAdventure") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select( Field.of("genre") .array_contains_all(["fantasy", "adventure"]) .as_("isFantasyAdventure") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select( arrayContainsAll(field("genre"), Arrays.asList("fantasy", "adventure")) .as("isFantasyAdventure")) .execute() .get();
متابعة
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.ArrayContainsAll(firestore.FieldOf("genre"), []string{"fantasy", "adventure"}).As("isFantasyAdventure"), )). Execute(ctx)
ARRAY_CONTAINS_ANY
البنية:
array_contains_any(array: ARRAY, search_values: ARRAY) -> BOOLEAN
الوصف:
تعرض هذه الدالة القيمة TRUE إذا تم العثور على أي من search_values في array، والقيمة FALSE في الحالات الأخرى.
أمثلة:
| مصفوفة | search_values | array_contains_any(array, search_values) |
|---|---|---|
| [1, 2, 3] | [4, 1] | صحيح |
| [1, 2, 3] | [4, 5] | خطأ |
| [1, 2, null] | [فارغ] | صحيح |
Node.js
const result = await db.pipeline() .collection("books") .select( field("genre") .arrayContainsAny([constant("fantasy"), constant("nonfiction")]) .as("isMysteryOrFantasy") ) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select( field("genre") .arrayContainsAny([constant("fantasy"), constant("nonfiction")]) .as("isMysteryOrFantasy") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("genre") .arrayContainsAny([Constant("fantasy"), Constant("nonfiction")]) .as("isMysteryOrFantasy") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("genre") .arrayContainsAny(listOf("fantasy", "nonfiction")) .alias("isMysteryOrFantasy") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("genre") .arrayContainsAny(Arrays.asList("fantasy", "nonfiction")) .alias("isMysteryOrFantasy") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select( Field.of("genre") .array_contains_any(["fantasy", "nonfiction"]) .as_("isMysteryOrFantasy") ) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select( arrayContainsAny(field("genre"), Arrays.asList("fantasy", "nonfiction")) .as("isMysteryOrFantasy")) .execute() .get();
متابعة
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.ArrayContainsAny(firestore.FieldOf("genre"), []string{"fantasy", "nonfiction"}).As("isMysteryOrFantasy"), )). Execute(ctx)
ARRAY_FILTER
البنية:
array_filter(array: ARRAY, predicate: (ANY) -> BOOLEAN) -> ARRAY
الوصف:
تتم فلترة array باستخدام تعبير predicate، ما يؤدي إلى عرض مصفوفة جديدة تحتوي فقط على العناصر التي تستوفي الشرط.
- يتم تقييم
predicateلكل عنصر فيarray. إذا كانت النتيجةtrue، يتم تضمين العنصر في النتيجة، وإلا (إذا كانت النتيجةfalseأوnull)، يتم حذفه. - إذا تم تقييم
predicateعلى أنّه قيمة غير منطقية أو غير فارغة، ستعرض الدالة خطأ.
أمثلة:
| مصفوفة | predicate | array_filter(array, predicate) |
|---|---|---|
| [1, 2, 3] | x -> x > 1 | [2, 3] |
| [1, null, 3] | x -> x > 1 | [3] |
| ["a", "b", "c"] | x -> x != "b" | ["a", "c"] |
| [] | x -> true | [] |
ARRAY_GET
البنية:
array_get(array: ARRAY, index: INT64) -> ANY
الوصف:
تعرض هذه الدالة العنصر في index المستند إلى 0 في array.
- إذا كانت قيمة
indexسالبة، يتم الوصول إلى العناصر من نهاية المصفوفة، حيث يكون-1هو العنصر الأخير. - إذا لم تكن السمة
arrayمن النوعARRAYوليستnull، يتم عرض خطأ. - إذا كانت قيمة
indexخارج الحدود، ستعرض الدالة قيمة غير متوفّرة. - إذا لم تكن السمة
indexمن النوعINT64، ستعرض الدالة خطأ.
أمثلة:
| مصفوفة | الفهرس | array_get(array, index) |
|---|---|---|
| [1, 2, 3] | 0 | 1 |
| [1, 2, 3] | -1 | 3 |
| [1, 2, 3] | 3 | غائب |
| [1, 2, 3] | -4 | غائب |
| "abc" | 0 | خطأ |
| قيمة فارغة | 0 | قيمة فارغة |
Array |
"a" | خطأ |
Array |
2.0 | خطأ |
ARRAY_LENGTH
البنية:
array_length(array: ARRAY) -> INT64
الوصف:
تعرض هذه الدالة عدد العناصر في array.
أمثلة:
| مصفوفة | array_length(array) |
|---|---|
| [1, 2, 3] | 3 |
| [] | 0 |
| [1, 1, 1] | 3 |
| [1, null] | 2 |
Node.js
const result = await db.pipeline() .collection("books") .select(field("genre").arrayLength().as("genreCount")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("genre").arrayLength().as("genreCount")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("genre").arrayLength().as("genreCount")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("genre").arrayLength().alias("genreCount")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("genre").arrayLength().alias("genreCount")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("genre").array_length().as_("genreCount")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(arrayLength(field("genre")).as("genreCount")) .execute() .get();
متابعة
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.ArrayLength(firestore.FieldOf("genre")).As("genreCount"), )). Execute(ctx)
ARRAY_REVERSE
البنية:
array_reverse(array: ARRAY) -> ARRAY
الوصف:
لعكس array المحدّد
أمثلة:
| مصفوفة | array_reverse(array) |
|---|---|
| [1, 2, 3] | [3, 2, 1] |
| ["a", "b"] | ["b", "a"] |
| [1, 2, 2, 3] | [3, 2, 2, 1] |
Node.js
const result = await db.pipeline() .collection("books") .select(arrayReverse(field("genre")).as("reversedGenres")) .execute();
Web
const result = await execute(db.pipeline() .collection("books") .select(field("genre").arrayReverse().as("reversedGenres")) );
Swift
let result = try await db.pipeline() .collection("books") .select([Field("genre").arrayReverse().as("reversedGenres")]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select(field("genre").arrayReverse().alias("reversedGenres")) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select(field("genre").arrayReverse().alias("reversedGenres")) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("genre").array_reverse().as_("reversedGenres")) .execute() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(arrayReverse(field("genre")).as("reversedGenres")) .execute() .get();
متابعة
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.ArrayReverse(firestore.FieldOf("genre")).As("reversedGenres"), )). Execute(ctx)
ARRAY_FIRST
البنية:
array_first(array: ARRAY) -> ANY
الوصف:
تعرض هذه الدالة العنصر الأول في array. يعادل هذا المبلغ array_get(array, 0).
- إذا كانت السمة
arrayفارغة، يتم عرض قيمة غير متوفّرة.
أمثلة:
| مصفوفة | array_first(array) |
|---|---|
| [1, 2, 3] | 1 |
| [] | غائب |
ARRAY_FIRST_N
البنية:
array_first_n(array: ARRAY, n: INT64) -> ARRAY
الوصف:
تعرض هذه الدالة أول عناصر n من array. يعادل هذا المبلغ array_slice(array, 0, n).
- إذا كانت قيمة
nسالبة، يتم عرض خطأ.
أمثلة:
| مصفوفة | n | array_first_n(array, n) |
|---|---|---|
| [1, 2, 3, 4, 5] | 3 | [1, 2, 3] |
| [1, 2] | 3 | [1, 2] |
| [1, 2, 3] | 0 | [] |
ARRAY_INDEX_OF
البنية:
array_index_of(array: ARRAY, value: ANY) -> INT64
الوصف:
تعرض هذه الدالة الفهرس الذي يبدأ من 0 لأول تكرار لـ value في array. تعرض الدالة -1 إذا لم يتم العثور على value.
أمثلة:
| مصفوفة | القيمة | array_index_of(array, value) |
|---|---|---|
| [1, 2, 3, 2] | 2 | 1 |
| [1, 2, 3] | 4 | -1 |
| [1, null, 3] | قيمة فارغة | 1 |
ARRAY_INDEX_OF_ALL
البنية:
array_index_of_all(array: ARRAY, value: ANY) -> ARRAY<INT64>
الوصف:
تعرض هذه الدالة مصفوفة تحتوي على الفهارس المستندة إلى الصفر لجميع تكرارات value في array. تعرض هذه الدالة [] في حال عدم العثور على value.
أمثلة:
| مصفوفة | القيمة | array_index_of_all(array, value) |
|---|---|---|
| [1, 2, 3, 2] | 2 | [1, 3] |
| [1, 2, 3] | 4 | [] |
| [1, null, 3, null] | قيمة فارغة | [1, 3] |
ARRAY_LAST
البنية:
array_last(array: ARRAY) -> ANY
الوصف:
تعرض هذه الدالة العنصر الأخير في array. يعادل هذا المبلغ array_get(array, -1).
- إذا كانت السمة
arrayفارغة، يتم عرض قيمة غير متوفّرة.
أمثلة:
| مصفوفة | array_last(array) |
|---|---|
| [1, 2, 3] | 3 |
| [] | غائب |
ARRAY_LAST_N
البنية:
array_last_n(array: ARRAY, n: INT64) -> ARRAY
الوصف:
تعرض هذه الدالة آخر عناصر n من array.
- إذا كانت قيمة
nسالبة، يتم عرض خطأ.
أمثلة:
| مصفوفة | n | array_last_n(array, n) |
|---|---|---|
| [1, 2, 3, 4, 5] | 3 | [3, 4, 5] |
| [1, 2] | 3 | [1, 2] |
| [1, 2, 3] | 0 | [] |
ARRAY_SLICE
البنية:
array_slice(array: ARRAY, offset: INT64, length: INT64) -> ARRAY
الوصف:
تعرض هذه الدالة مجموعة فرعية من array تبدأ من الفهرس offset الذي يبدأ من 0، وتتضمّن عناصر length.
- إذا كانت قيمة
offsetسالبة، تشير إلى موضع البدء من نهاية الصفيفة، مع كون-1هو العنصر الأخير. - إذا كانت قيمة
lengthأكبر من عدد العناصر المتبقية في الصفيفة بعدoffset، تمتد النتيجة إلى نهاية الصفيفة. - يجب أن تكون قيمة
lengthغير سالبة، وإلا ستعرض الدالة خطأ.
أمثلة:
| مصفوفة | اقتطاع | الطول | array_slice(array, offset, length) |
|---|---|---|---|
| [1, 2, 3, 4, 5] | 1 | 3 | [2, 3, 4] |
| [1, 2, 3, 4, 5] | -2 | 2 | [4, 5] |
| [1, 2, 3] | 1 | 5 | [2, 3] |
| [1, 2, 3] | 3 | 2 | [] |
ARRAY_TRANSFORM
البنية:
array_transform(array: ARRAY, expression: (ANY) -> ANY) -> ARRAY
array_transform(array: ARRAY, expression: (ANY, INT64) -> ANY) -> ARRAY
الوصف:
تحوّل هذه الدالة array من خلال تطبيق expression على كل عنصر، وتعرض صفيفًا جديدًا يتضمّن العناصر المحوَّلة. ستكون مصفوفة الإخراج دائمًا بالحجم نفسه لمصفوفة الإدخال.
- يمكن أن تكون الدالة
expressionدالة أحاديةelement -> resultأو دالة ثنائية(element, index) -> result. - إذا كانت الدالة
expressionأحادية، يتم استدعاؤها مع كل عنصر من عناصرarray. - إذا كانت الدالة
expressionثنائية، يتم استدعاؤها مع كل عنصر من عناصرarrayوفهرسه المقابل الذي يستند إلى 0.
أمثلة:
| مصفوفة | تعبير | array_transform(array, expression) |
|---|---|---|
| [1, 2, 3] | x -> x * 2 | [2, 4, 6] |
| [1, 2, 3] | x -> x + 1 | [2, 3, 4] |
| [10, 20] | (x, i) -> x + i | [10, 21] |
| [] | x -> 1 | [] |
الحد الأقصى
البنية:
maximum(array: ARRAY) -> ANY
الوصف:
تعرض هذه الدالة القيمة القصوى في array.
- يتم تجاهل قيم
NULLأثناء المقارنة. - إذا كانت السمة
arrayفارغة أو تحتوي على قيمNULLفقط، يتم عرضNULL.
أمثلة:
| مصفوفة | maximum(array) |
|---|---|
| [1, 5, 2] | 5 |
| [1, null, 5] | 5 |
| ["a", "c", "b"] | "c" |
| [null, null] | قيمة فارغة |
| [] | قيمة فارغة |
MAXIMUM_N
البنية:
maximum_n(array: ARRAY, n: INT64) -> ARRAY
الوصف:
تعرض مصفوفة من أكبر قيم عددها n في array بترتيب تنازلي.
- يتم تجاهل قيم
NULL. - إذا كانت قيمة
nسالبة، يتم عرض خطأ.
أمثلة:
| مصفوفة | n | maximum_n(array, n) |
|---|---|---|
| [1, 5, 2, 4, 3] | 3 | [5, 4, 3] |
| [1, null, 5] | 3 | [5, 1] |
الحد الأدنى
البنية:
minimum(array: ARRAY) -> ANY
الوصف:
تعرض هذه الدالة الحد الأدنى للقيمة في array.
- يتم تجاهل قيم
NULLأثناء المقارنة. - إذا كانت السمة
arrayفارغة أو تحتوي على قيمNULLفقط، يتم عرضNULL.
أمثلة:
| مصفوفة | minimum(array) |
|---|---|
| [1, 5, 2] | 1 |
| [5, null, 1] | 1 |
| ["a", "c", "b"] | "a" |
| [null, null] | قيمة فارغة |
| [] | قيمة فارغة |
MINIMUM_N
البنية:
minimum_n(array: ARRAY, n: INT64) -> ARRAY
الوصف:
تعرض مصفوفة من أصغر قيم عددها n في array بترتيب تصاعدي.
- يتم تجاهل قيم
NULL. - إذا كانت قيمة
nسالبة، يتم عرض خطأ.
أمثلة:
| مصفوفة | n | minimum_n(array, n) |
|---|---|---|
| [1, 5, 2, 4, 3] | 3 | [1, 2, 3] |
| [5, null, 1] | 3 | [1, 5] |
SUM
البنية:
sum(array: ARRAY) -> INT64 | FLOAT64
الوصف:
تعرض هذه الدالة مجموع كل قيم NUMERIC في ARRAY.
- يتم تجاهل القيم غير الرقمية في الصفيفة.
- إذا كانت أي قيمة رقمية في الصفيف هي
NaN، ستعرض الدالةNaN. - يتم تحديد نوع القيمة التي تم إرجاعها من خلال أكبر نوع رقمي في الصفيفة:
INT64<FLOAT64. - في حال حدوث تجاوز سعة لعدد صحيح من 64 بت قبل جمع أي قيمة نقطة عائمة، يتم عرض خطأ. إذا تم جمع قيم النقطة العائمة، سيؤدي التجاوز إلى +/- ما لا نهاية.
- إذا لم تحتوِ المصفوفة على أي قيم رقمية على الإطلاق، ستعرض الدالة
NULL.
أمثلة:
| مصفوفة | sum(array) |
|---|---|
| [1, 2, 3] | 6 لتر |
| [1L, 2L, 3L] | 6 لتر |
| [2000000000, 2000000000] | 4000000000L |
| [10, 20.5] | 30.5 |
| [1, "a", 2] | 3L |
| [INT64.MAX_VALUE, 1] | خطأ |
| [INT64.MAX_VALUE, 1, -1.0] | خطأ |
| [INT64.MAX_VALUE, 1.0] | 9.223372036854776e+18 |
الضم
البنية:
join[T <: STRING | BYTES](array: ARRAY<T>, delimiter: T) -> STRING
join[T <: STRING | BYTES](array: ARRAY<T>, delimiter: T, null_text: T) -> STRING
الوصف:
تعرض هذه الدالة دمجًا للعناصر في array كـ STRING. يمكن أن تكون قيمة array من نوعَي البيانات STRING أو BYTES.
- يجب أن تكون جميع العناصر في
arrayوdelimiterوnull_textمن النوع نفسه، أي يجب أن تكون جميعهاSTRINGأو جميعهاBYTES. - إذا تم توفير السمة
null_text، يتم استبدال أي قيمNULLفي السمةarrayبالسمةnull_text. - إذا لم يتم تقديم السمة
null_text، يتم حذف قيمNULLفيarrayمن النتيجة.
أمثلة:
في حال عدم توفّر السمة null_text:
| مصفوفة | محدِّد | join(array, delimiter) |
|---|---|---|
| ["a", "b", "c"] | "," | "a,b,c" |
| ["a", null, "c"] | "," | "a,c" |
| [b'a', b'b', b'c'] | b',' | b'a,b,c' |
| ["a", b'c'] | "," | خطأ |
| ["a", "c"] | b',' | خطأ |
| [b'a', b'c'] | "," | خطأ |
عند تقديم السمة null_text:
| مصفوفة | محدِّد | null_text | join(array, delimiter, null_text) |
|---|---|---|---|
| ["a", null, "c"] | "," | "MISSING" | "a,MISSING,c" |
| [b'a', null, b'c'] | b',' | b'NULL' | b'a,NULL,c' |
| [null, "b", null] | "," | "MISSING" | "MISSING,b,MISSING" |
| [b'a', null, null] | b',' | b'NULL' | b'a,NULL,NULL' |
| ["a", null] | "," | b'N' | خطأ |
| [b'a', null] | b',' | "N" | خطأ |