Todos los productos
Search
Centro de documentos

Hologres:Keyvalue

Última actualización: Sep 05, 2026

La función KeyValue extrae un valor de una cadena de pares clave-valor delimitados. Es útil para analizar líneas de registros, parámetros de consulta de URL o atributos de eventos almacenados como texto sin formato.

Limitaciones

  • Se requiere Hologres V2.1 o posterior. Para actualizar una instancia anterior, utilice la opción de actualización manual en la consola de Hologres o póngase en contacto con el soporte técnico de Hologres mediante el grupo de DingTalk. Consulte la sección Manual upgrade (beta) en "Actualizaciones de instancias" y Obtain online support for Hologres.

  • Las sentencias SQL que invocan KeyValue deben incluir una cláusula FROM <table>.

Sintaxis

keyvalue(text <str>, [text <split1>, text <split2>,] text <key>)

Esta función divide str en pares clave-valor mediante split1, separa cada par en clave y valor con split2 y devuelve el valor correspondiente a la key especificada.

Parámetros

Parámetro

Tipo

Obligatorio

Valor predeterminado

Descripción

str

TEXT

Sí

—

Cadena por analizar.

split1

TEXT

No

; (punto y coma)

Delimitador que separa los pares clave-valor. Si se especifica, también debe indicarse split2. Si un par contiene varias apariciones de split2, el valor de retorno no está definido.

split2

TEXT

No

: (dos puntos)

Delimitador que separa la clave de su valor dentro de cada par. Si se especifica, también debe indicarse split1.

key

TEXT

Sí

—

Clave cuyo valor se desea obtener.

Valor de retorno

Devuelve un valor de tipo TEXT. Retorna null en los siguientes casos:

  • split1 o split2 es null.

  • str o key es null.

  • No se encuentra ninguna clave coincidente tras la división.

Si hay varias claves coincidentes, se devuelve el valor de la primera clave encontrada.

Ejemplos

Delimitadores predeterminados (punto y coma y dos puntos)

Este ejemplo muestra búsquedas de claves tanto constantes como basadas en columnas mediante los delimitadores predeterminados (; entre pares y : entre clave y valor).

BEGIN;
CREATE TABLE kvtest (
    a TEXT,
    b TEXT
);
COMMIT;

INSERT INTO kvtest VALUES ('0:1', 'a'), ('2:3', 'b'), ('1:2', '1'), ('1:4', '1');

-- Look up by a constant key
SELECT keyvalue(a, '1') FROM kvtest;
-- Result:
-- keyvalue
-- ----------
-- \N
-- \N
-- 2
-- 4

-- Look up by a column as the key
SELECT keyvalue(a, b) FROM kvtest;
-- Result:
-- keyvalue
-- ----------
-- \N
-- \N
-- 2
-- 4

Delimitadores personalizados

Este ejemplo analiza una cadena separada por && y con claves definidas por =, un formato habitual en parámetros de consulta de URL y registros de eventos analíticos.

BEGIN;
CREATE TABLE kvtest (
    a TEXT,
    b TEXT
);
COMMIT;

INSERT INTO kvtest VALUES ('sp=11&&xd=1&&B2C=12&&tf=219', 'key');

-- split1='&&' separates pairs; split2='=' separates key from value
SELECT keyvalue(a, '&&', '=', 'sp') FROM kvtest;
-- Result:
-- keyvalue
-- ----------
-- 11