druid/docs/querying/sql-multivalue-string-functions.md
Clint Wylie dad8398a4d
start process of deprecating non-sql compatible legacy configurations (#15713)
Starting the process to officially deprecate non SQL compatible modes by updating docs to aggressively call out that Druids non SQL compliant modes are deprecated and will go away someday. There are no code or behavior changes at this PR.
2024-02-13 15:31:45 +05:30

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 (deprecated 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 (deprecated 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.