Skip to main content

SQL multi-value string functions

info

Apache Druid supports two query languages: Druid SQL and native queries. This document describes the SQL language.

Druid supports string dimensions containing multiple values. This page describes the operations you can perform on multi-value string dimensions using Druid SQL. See SQL multi-value strings and native Multi-value dimensions for more information.

All array references in the multi-value string function documentation can refer to multi-value string columns or ARRAY types. These functions are largely identical to the array functions, but use VARCHAR types and behavior. Multi-value strings can also be converted to ARRAY types using MV_TO_ARRAY, and ARRAY into multi-value strings via ARRAY_TO_MV. For additional details about ARRAY types, see ARRAY data type documentation.

FunctionDescription
MV_FILTER_ONLY(expr, arr)Filters multi-value expr to include only values contained in array arr.
MV_FILTER_NONE(expr, arr)Filters multi-value expr to include no values contained in array arr.
MV_LENGTH(arr)Returns length of the array expression.
MV_CONTAINS(arr, expr)If expr is a scalar type, returns true if arr contains expr. If expr is an array, returns true if arr contains all elements of expr. Otherwise returns false.
MV_OVERLAP(arr1, arr2)Returns true if arr1 and arr2 have any elements in common, else false.
MV_OFFSET(arr, long)Returns the array element at the 0-based index supplied, or null for an out of range index.
MV_OFFSET_OF(arr, expr)Returns the 0-based index of the first occurrence of expr in the array. If no matching elements exist in the array, returns null.
MV_ORDINAL(arr, long)Returns the array element at the 1-based index supplied, or null for an out of range index.
MV_ORDINAL_OF(arr, expr)Returns the 1-based index of the first occurrence of expr in the array. If no matching elements exist in the array, returns null.
MV_PREPEND(expr, arr)Adds expr to the beginning of arr, the resulting array type determined by the type arr.
MV_APPEND(arr, expr)Appends expr to arr, the resulting array type determined by the type of arr.
MV_CONCAT(arr1, arr2)Concatenates arr2 to arr1. The resulting array type is determined by the type of arr1.
MV_SLICE(arr, start, end)Returns the subarray of arr from the zero-based index of start (inclusive) to end (exclusive). Returns null when start is less than 0, greater than the array length, or greater than end. When end is greater than the array length, null values are appended to the subarray.
MV_TO_STRING(arr, str)Joins all elements of arr by the delimiter specified by str.
STRING_TO_MV(str1, str2)Splits str1 into an array on the delimiter specified by str2, which is a regular expression.
MV_TO_ARRAY(str)Converts a multi-value string from a VARCHAR to a VARCHAR ARRAY.