4.3 KiB
id | title | sidebar_label |
---|---|---|
sql-multivalue-string-functions | SQL multi-value string functions | 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.
Function | Description |
---|---|
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_OFFSET(arr, long) |
Returns the array element at the 0-based index supplied, or null for an out of range index. |
MV_ORDINAL(arr, long) |
Returns the array element at the 1-based index supplied, or null for an out of range index. |
MV_CONTAINS(arr, expr) |
If expr is a scalar type, returns 1 if arr contains expr . If expr is an array, returns 1 if arr contains all elements of expr . Otherwise returns 0. |
MV_OVERLAP(arr1, arr2) |
Returns 1 if arr1 and arr2 have any elements in common, else 0. |
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 or -1 if druid.generic.useDefaultValueForNull=true (legacy mode). |
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 or -1 if druid.generic.useDefaultValueForNull=true (legacy mode). |
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 0-based index start(inclusive) to end(exclusive), or null , if start is less than 0, greater than length of arr or greater than end. |
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 . |