# Array Functions Array functions manipulate arrays or return information about arrays. ## CARDINALITY ```text cardinality(array) ``` The number of members in the array. The null value will return 0. ## ARRAY_POSITION ```text array_position(array, value) ``` Return a 0-based index of the first occurrence of val if it is found within an array. If val does not exist within the array, it returns -1. ## ELEMENT_AT ```text element_at(array, index) ``` Returns element of the array at index val. If val < 0, this function accesses elements from the last to the first. ## ARRAY_CONTAINS ```text array_contains(array, value) ``` Returns true if array contains the element. ## ARRAY_CREATE ```text array_create(value1, ......) ``` Construct an array from literals. ## ARRAY_REMOVE ```text array_remove(array, value) ``` Returns the array with all occurrences of value removed. ## ARRAY_LAST_POSITION ```text array_last_position(array, val) ``` Return a 0-based index of the last occurrence of val if it is found within the array. If val does not exist within the array, it returns -1. ## ARRAY_CONTAINS_ANY ```text array_contains_any(array1, array2) ``` Returns true if array1 and array2 have any elements in common. ## ARRAY_INTERSECT ```text array_intersect(array1, array2) ``` Returns an intersection of the two arrays, with all duplicates removed. ## ARRAY_UNION ```text array_union(array1, array2) ``` Returns a union of the two arrays, with all duplicates removed. ## ARRAY_MAX ```text array_max(array) ``` Returns an element which is greater than or equal to all other elements of the array. The null element will be ignored. ## ARRAY_MIN ```text array_min(array) ``` Returns an element which is less than or equal to all other elements of the array. The null element will be ignored. ## ARRAY_EXCEPT ```text array_except(array1, array2) ``` Returns an array of elements that are in array1 but not in array2, without duplicates. ## REPEAT ```text repeat(string, count) ``` Constructs an array of val repeated count times. ## SEQUENCE ```text sequence(start, stop, step) ``` Returns an array of integers from start to stop, incrementing by step. ## ARRAY_CARDINALITY ```text array_cardinality(array) ``` Return the number of elements in the array. The null value will be ignored. ## ARRAY_FLATTEN ```text array_flatten(array) ``` Return a flattened array, i.e., expand the array elements in the array. For example, if the input is [[1, 4], [2, 3]], then the output is [1, 4, 2, 3]. ## ARRAY_DISTINCT ```text array_distinct(array) ``` Return a distinct array, i.e., remove the duplicate elements in the array. ## ARRAY_MAP ```text array_map(function_name, array) ``` Return a new array by applying a function to each element of the array. ## ARRAY_JOIN ```text array_join(array, delimiter, null_replacement) ``` Return a string that concatenates all elements of the array and uses the delimiter and an optional string to replace null values. For example, if the input is [1, 2, 3], delimiter is set to comma, then the output is "1,2,3". ## ARRAY_SHUFFLE ```text array_shuffle(array) ``` Return a shuffled array, i.e., randomly shuffle the elements in the array. ## ARRAY_CONCAT ```text array_concat(array1, array2, ...) ``` Returns the concatenation of the input arrays, this function does not modify the existing arrays, but returns new one. ## ARRAY_SORT ```text array_sort(array) ``` Returns a sorted copy of the input array. ```sql array_sort([3, 2, "b", "a"]) ``` Result: ```sql [2, 3, "a", "b"] ```