Todos los productos
Search
Centro de documentos

Hologres:String functions

Última actualización: Sep 05, 2026

Hologres admite las siguientes funciones de cadenas. Para consultar la lista completa de funciones de cadenas compatibles con PostgreSQL, consulte PostgreSQL Functions.

Índice de funciones

Concatenación, división y relleno de cadenas

Función

Descripción

STRING \|\| STRING[STRING

STRING](#16163c209490i)

Concatena dos cadenas.

CONCAT

Concatena dos o más cadenas e ignora los argumentos NULL.

CONCAT_WS

Concatena cadenas con un separador e ignora los argumentos de cadena NULL.

LISTAGG

Agrega valores de columna en varias filas dentro de una sola cadena. Compatible con Oracle; requiere la extensión orafce.

STRING_AGG

Agrega valores de columna en varias filas dentro de una sola cadena.

LEFT

Extrae caracteres desde el inicio de una cadena.

RIGHT

Extrae caracteres desde el final de una cadena.

SPLIT_PART

Divide una cadena por un delimitador y devuelve el segmento n-ésimo.

SUBSTRING

Extrae una subcadena por posición o expresión regular. Alias: SUBSTR (forma compatible con Oracle).

SUBSTR

Extrae una subcadena a partir de una posición inicial. Compatible con Oracle; requiere la extensión orafce. Alias: SUBSTRING.

REGEXP_MATCH

Compara una cadena con una expresión regular y devuelve las coincidencias como un arreglo.

REGEXP_SPLIT_TO_TABLE

Divide una cadena mediante una expresión regular y devuelve cada segmento como una fila.

REGEXP_SPLIT_TO_ARRAY

Divide una cadena mediante una expresión regular y devuelve los segmentos como un arreglo.

TRIM

Elimina caracteres especificados de uno o ambos extremos de una cadena.

BTRIM

Elimina caracteres especificados de ambos extremos de una cadena.

LTRIM

Elimina caracteres especificados del extremo izquierdo (inicio) de una cadena.

RTRIM

Elimina caracteres especificados del extremo derecho (final) de una cadena.

LPAD

Rellena una cadena por la izquierda hasta alcanzar una longitud especificada.

RPAD

Rellena una cadena por la derecha hasta alcanzar una longitud especificada.

Otras funciones de cadenas

Función

Descripción

ASCII

Devuelve el código ASCII del primer carácter.

CHAR_LENGTH

Devuelve la longitud en caracteres de una cadena. Alias: LENGTH.

LENGTH

Devuelve el número de caracteres en una cadena. Alias: CHAR_LENGTH.

CHR

Devuelve el carácter correspondiente a un valor de código dado.

INITCAP

Convierte a mayúscula la primera letra de cada palabra.

LOWER

Convierte una cadena a minúsculas.

UPPER

Convierte una cadena a mayúsculas.

OCTET_LENGTH

Devuelve el número de bytes en una cadena.

MD5

Devuelve el hash MD5 de una cadena en formato hexadecimal.

POSITION

Devuelve la posición de una subcadena dentro de una cadena. Alias: STRPOS.

STRPOS

Devuelve la posición de una subcadena dentro de una cadena. Alias: POSITION.

INSTR

Devuelve la posición de una subcadena dentro de un rango de una cadena. Compatible con Oracle; requiere la extensión orafce.

REPLACE

Reemplaza todas las apariciones de una subcadena con otra cadena.

REGEXP_REPLACE

Reemplaza subcadenas que coinciden con una expresión regular POSIX.

TRANSLATE

Reemplaza caracteres individuales en una cadena.

REPEAT

Repite una cadena un número especificado de veces.

STARTS_WITH

Devuelve verdadero si una cadena comienza con un prefijo especificado.

PARSE_IDENT

Analiza sintácticamente una cadena de identificador SQL calificado.

QUOTE_IDENT

Devuelve una cadena entrecomillada como un identificador SQL válido.

QUOTE_LITERAL

Devuelve una cadena entrecomillada como una constante de cadena SQL válida.

TO_HEX

Convierte un entero a su representación hexadecimal.

TO_NUMBER

Convierte una cadena a un tipo numérico.

PLVSTR.RVRS

Invierte una cadena. Compatible con Oracle; requiere la extensión orafce.

ROW

Devuelve el número de fila de la fila actual. Compatible con Hologres V1.3 y versiones posteriores.

Concatenación, división y relleno de cadenas

STRING \|\| STRING

Concatena dos cadenas.

Sintaxis

<string_value1> TEXT || <string_value2> TEXT

Parámetros

Parámetro

Obligatorio

Descripción

string_value1

Sí

La primera expresión de cadena.

string_value2

Sí

La segunda expresión de cadena.

Tipo de retorno: TEXT

Ejemplo

-- Returns: HologreSQL
SELECT 'Holo' || 'greSQL';

CONCAT

Concatena dos o más cadenas en una sola. Los argumentos NULL se ignoran.

Sintaxis

CONCAT(<str1> TEXT, <str2> TEXT, ..., <strN> TEXT)

Parámetros

Parámetro

Obligatorio

Descripción

str1, ..., strN

Sí

Las cadenas que se van a concatenar. Los valores NULL se ignoran.

Tipo de retorno: TEXT

Ejemplo

SELECT CONCAT('abcde', 2, NULL, 22);

Resultado:

concat
--------
abcde222

CONCAT_WS

Concatena todos los argumentos después del primero y utiliza el primer argumento como separador.

Sintaxis

CONCAT_WS(<sep> TEXT, str "any" [, str "any" [, ...]])

El tipo any indica que se aceptan todos los tipos de datos.

Parámetros

Obligatorios:

sep: El separador que se inserta entre cada cadena. Si sep es NULL, la función devuelve NULL.

Opcionales:

str: Las cadenas que se van a concatenar. Los argumentos de cadena NULL se ignoran.

Tipo de retorno: TEXT

Ejemplo

SELECT CONCAT_WS(',', 'abcde', 2, NULL, 22);

Resultado:

concat_ws
----------
abcde,2,22

LISTAGG

Agrega valores de la misma columna en varias filas dentro de una sola cadena. Esta es una función compatible con Oracle que requiere la extensión orafce. Para obtener instrucciones de configuración, consulte Oracle-compatible functions.

Sintaxis

LISTAGG(<str1> TEXT [, <str2> TEXT])

Parámetros

Parámetro

Obligatorio

Descripción

str1

Sí

La columna o expresión de cadena que se va a agregar.

str2

No

El separador entre los valores agregados. Valor predeterminado: sin separador.

Tipo de retorno: TEXT

Ejemplos

-- Returns: hologres
SELECT LISTAGG(t) FROM (VALUES('holo'), ('gres')) AS l(t);
-- Returns: holo.gres
SELECT LISTAGG(t, '.') FROM (VALUES('holo'), ('gres')) AS l(t);

STRING_AGG

Agrega valores de la misma columna en varias filas dentro de una sola cadena.

Sintaxis

STRING_AGG(expression [order_by_clause]) [FILTER (WHERE filter_clause)]
La cláusula FILTER es compatible con Hologres V1.3 y versiones posteriores. Para actualizar su instancia, consulte Upgrade an instance . Para obtener soporte técnico, únase al grupo de DingTalk de Hologres. Para ver las instrucciones, consulte How do I get more online support? .

Parámetros

Parámetro

Obligatorio

Descripción

expression

Sí

La columna o expresión que se va a agregar.

order_by_clause

No

Define el orden de clasificación de los valores antes de la concatenación. Si se omite, no se garantiza el orden.

FILTER (WHERE filter_clause)

No

Filtra las filas incluidas en la agregación.

Tipo de retorno: TEXT

Ejemplos

Ejemplo 1: Agregar todos los nombres de ciudades en una sola cadena.

CREATE TABLE city_test (
    country text,
    city text
);

INSERT INTO city_test
    VALUES ('China', 'Shanghai'), ('China', 'Taiwan'), ('Japan', 'Tokyo'), ('France', 'Paris'), ('UK', 'London');

SELECT STRING_AGG(city, ',') FROM city_test;

Resultado:

string_agg
-------------------------------
Shanghai,Taiwan,Tokyo,Paris,London

Ejemplo 2: Agregar nombres donde student_id > 2.

CREATE TABLE name_text (
    student_id int,
    name text
);

INSERT INTO name_text
    VALUES (1, 'Zhang San'), (2, 'Li Si'), (3, 'Wang Wu'), (4, 'Zhou Liu');

SELECT STRING_AGG(name, ',') FILTER (WHERE student_id > 2) FROM name_text;

Resultado:

string_agg
-----------
Wang Wu,Zhou Liu

LEFT

Extrae un número especificado de caracteres desde el inicio de una cadena.

Sintaxis

LEFT(<str> TEXT, <num> INT)

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino.

num

Sí

El número de caracteres que se van a extraer. Si es negativo, devuelve todos los caracteres excepto los últimos -num caracteres.

Tipo de retorno: TEXT

Ejemplo

SELECT LEFT('hologres', 4);

Resultado:

left
----
holo

RIGHT

Extrae un número especificado de caracteres desde el final de una cadena.

Sintaxis

RIGHT(<str> TEXT, <num> INT)

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino.

num

Sí

El número de caracteres que se van a extraer. Si es negativo, devuelve todos los caracteres excepto los primeros -num caracteres.

Tipo de retorno: TEXT

Ejemplo

SELECT RIGHT('hologres', 4);

Resultado:

right
-----
gres

SPLIT_PART

Divide una cadena por un delimitador y devuelve el segmento n-ésimo.

Sintaxis

SPLIT_PART(<str> TEXT, <delimiter> TEXT, <num> INT)

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino que se va a dividir.

delimiter

Sí

El delimitador utilizado para la división.

num

Sí

El índice basado en 1 del segmento que se va a devolver.

Tipo de retorno: TEXT

Notas de uso

  • Si num es mayor que el número de segmentos, la función devuelve NULL.

Ejemplo

CREATE TABLE split_part_test (
    a text
);

INSERT INTO split_part_test VALUES ('a/b/c/d/e'), ('a1/b1/c1/d1/e1');

SELECT split_part(a, '/', 2) FROM split_part_test;

Resultado:

split_part
----------
b
b1

SUBSTRING

Extrae una subcadena de una cadena de destino. Admite tres formas: basada en posición, expresión regular POSIX y expresión regular SQL.

Sintaxis

Basada en posición:

SUBSTRING(<str> TEXT [FROM <num_start> INT] [FOR <num_end> INT])

Expresión regular POSIX:

SUBSTRING(<str> TEXT FROM <pattern> TEXT)

Expresión regular SQL:

SUBSTRING(<str> TEXT FROM <pattern> TEXT FOR <escape> TEXT)

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino.

num_start

No

La posición inicial (basada en 1). Valor predeterminado: 1.

num_end

No

El número de caracteres que se van a extraer. Valor predeterminado: hasta el final de la cadena.

pattern

Sí (formas regex)

La expresión regular con la que se busca coincidencia.

escape

Sí (regex SQL)

El carácter de escape para caracteres especiales como ., * y +.

Tipo de retorno: TEXT

Ejemplos

Ejemplo 1: Extraer una subcadena por posición.

SELECT SUBSTRING('Thomas' FROM 2 FOR 3);

Resultado:

substring
---------
hom

Ejemplo 2: Extraer una subcadena que coincide con una expresión regular POSIX.

SELECT SUBSTRING('Thomas' FROM '...$');

Resultado:

substring
---------
mas

Ejemplo 3: Extraer una subcadena que coincide con una expresión regular SQL.

SELECT SUBSTRING('Thomas' FROM '%#"o_a#"_' FOR '#');

Resultado:

substring
---------
oma

SUBSTR

Extrae una subcadena a partir de una posición inicial. Esta es una función compatible con Oracle que requiere la extensión orafce. Para obtener instrucciones de configuración, consulte Oracle-compatible functions.

Sintaxis

Extraer desde una posición inicial hasta el final:

SUBSTR(<str> TEXT, <num_start> INTEGER)

Extraer una subcadena de longitud fija:

SUBSTR(<str> TEXT, <num_start> INTEGER, <len> INTEGER)

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino.

num_start

Sí

La posición inicial (basada en 1).

len

No

El número de caracteres que se van a extraer. Valor predeterminado: hasta el final de la cadena.

Tipo de retorno: TEXT

Ejemplos

Ejemplo 1: Extraer desde el cuarto carácter hasta el final.

-- Returns: ogres
SELECT SUBSTR('Hologres', 4);

Ejemplo 2: Extraer cinco caracteres a partir del segundo carácter.

-- Returns: ologr
SELECT SUBSTR('Hologres', 2, 5);

REGEXP_MATCH

Compara una cadena con una expresión regular y devuelve las coincidencias como un arreglo.

Sintaxis

REGEXP_MATCH(<str> TEXT, <pattern> TEXT)

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena que se va a comparar.

pattern

Sí

La expresión regular.

Tipo de retorno: ARRAY

Ejemplo

SELECT regexp_match('foobarbequebaz', '(bar)(beque)');

Resultado:

regexp_match
------------
{bar,beque}

REGEXP_SPLIT_TO_TABLE

Divide una cadena mediante una expresión regular y devuelve cada segmento como una fila independiente. Utilice esta función para expandir valores delimitados en filas.

Sintaxis

REGEXP_SPLIT_TO_TABLE(<str> TEXT, <pattern> TEXT)

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena que se va a dividir.

pattern

Sí

La expresión regular que identifica las posiciones de división.

Tipo de retorno: TEXT (una fila por segmento)

Ejemplo

CREATE TABLE interests_test (
    name text,
    intrests text
);

INSERT INTO interests_test
    VALUES ('Zhang San', 'singing,dancing'), ('Li Si', 'soccer,running,drawing'), ('Wang Wu', 'flower arranging,calligraphy,playing piano,sleeping');

SELECT name, REGEXP_SPLIT_TO_TABLE(intrests, ',') FROM interests_test;

Resultado:

name      | regexp_split_to_table
----------+----------------------
Zhang San | singing
Zhang San | dancing
Li Si     | soccer
Li Si     | running
Li Si     | drawing
Wang Wu   | flower arranging
Wang Wu   | calligraphy
Wang Wu   | playing piano
Wang Wu   | sleeping

REGEXP_SPLIT_TO_ARRAY

Divide una cadena mediante una expresión regular y devuelve los segmentos como un arreglo.

Sintaxis

REGEXP_SPLIT_TO_ARRAY(<str> TEXT, <pattern> TEXT)

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena que se va a dividir.

pattern

Sí

La expresión regular que identifica las posiciones de división.

Tipo de retorno: ARRAY

Ejemplo

CREATE TABLE interests_test (
    name text,
    intrests text
);

INSERT INTO interests_test
    VALUES ('Zhang San', 'singing,dancing'), ('Li Si', 'soccer,running,drawing'), ('Wang Wu', 'flower arranging,calligraphy,playing piano,sleeping');

SELECT name, REGEXP_SPLIT_TO_ARRAY(intrests, ',') FROM interests_test;

Resultado:

name      | regexp_split_to_array
----------+----------------------------------------------------------
Zhang San | {singing,dancing}
Li Si     | {soccer,running,drawing}
Wang Wu   | {"flower arranging",calligraphy,"playing piano",sleeping}

TRIM

Elimina caracteres especificados de uno o ambos extremos de una cadena.

Sintaxis

TRIM([LEADING | TRAILING | BOTH] [<characters> TEXT] FROM <string> TEXT)

Parámetros

Parámetro

Obligatorio

Descripción

`LEADING

TRAILING

BOTH`

No

Los extremos que se van a recortar. Valor predeterminado: BOTH.

characters

No

El conjunto de caracteres que se van a eliminar. Cada carácter se compara individualmente, no como una cadena completa. Valor predeterminado: espacio.

string

Sí

La cadena de destino.

Tipo de retorno: TEXT

Ejemplo

-- Returns: Tom
SELECT TRIM(BOTH 'xyz' FROM 'yxTomxx');

BTRIM

Elimina caracteres especificados de ambos extremos de una cadena.

Sintaxis

BTRIM(<str> TEXT [, <characters> TEXT])

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino.

characters

No

El conjunto de caracteres que se van a eliminar de ambos extremos. Cada carácter se compara individualmente, no como una cadena completa. Valor predeterminado: espacio.

Tipo de retorno: TEXT

Ejemplo

-- Returns: trim
SELECT BTRIM('xyxtrimyyx', 'xyz');

LTRIM

Elimina caracteres especificados del extremo izquierdo (inicio) de una cadena.

Sintaxis

LTRIM(<str> TEXT [, <characters> TEXT])

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino.

characters

No

El conjunto de caracteres que se van a eliminar de la izquierda. Cada carácter se compara individualmente, no como una cadena completa. Valor predeterminado: espacio.

Tipo de retorno: TEXT

Ejemplo

-- Returns: test
SELECT LTRIM('zzzytest', 'xyz');

RTRIM

Elimina caracteres especificados del extremo derecho (final) de una cadena.

Sintaxis

RTRIM(<str> TEXT [, <characters> TEXT])

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino.

characters

No

El conjunto de caracteres que se van a eliminar de la derecha. Cada carácter se compara individualmente, no como una cadena completa. Valor predeterminado: espacio.

Tipo de retorno: TEXT

Ejemplo

-- Returns: test
SELECT RTRIM('testxxzx', 'xyz');

Cuando un valor DECIMAL se convierte a TEXT, el resultado conserva los ceros finales definidos por su escala; por ejemplo, 2.00 en lugar de 2. Una sola llamada a RTRIM que elimina únicamente los ceros deja el punto decimal:

-- Returns: 2.
SELECT RTRIM(2.00::DECIMAL::TEXT, '0');

Para eliminar tanto los ceros finales como el punto decimal, anide dos llamadas a RTRIM: la primera llamada elimina los ceros y la segunda elimina el punto decimal.

-- Returns: 2
SELECT RTRIM(RTRIM(2.00::DECIMAL::TEXT, '0'), '.');

La siguiente tabla compara los resultados de las dos expresiones para diferentes valores en una columna DECIMAL(10,2) llamada a:

Valor

RTRIM(a::TEXT, '0')

RTRIM(RTRIM(a::TEXT, '0'), '.')

0.00

0.

0

1.10

1.1

1.1

2.00

2.

2

3.50

3.5

3.5

10.00

10.

10

LPAD

Rellena una cadena por la izquierda con un carácter de relleno hasta alcanzar una longitud total especificada.

Sintaxis

LPAD(<str> TEXT, <length> INT [, <fill> TEXT])

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino.

length

Sí

La longitud total del resultado. Si str es más larga que length, la cadena se trunca desde la derecha hasta la longitud especificada.

fill

No

El carácter de relleno. Valor predeterminado: espacio.

Tipo de retorno: TEXT

Ejemplo

-- Returns: xyxhi
SELECT LPAD('hi', 5, 'xy');

RPAD

Rellena una cadena por la derecha con un carácter de relleno hasta alcanzar una longitud total especificada.

Sintaxis

RPAD(<str> TEXT, <length> INT [, <fill> TEXT])

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino.

length

Sí

La longitud total del resultado. Si str es más larga que length, la cadena se trunca desde la derecha hasta la longitud especificada.

fill

No

El carácter de relleno. Valor predeterminado: espacio.

Tipo de retorno: TEXT

Ejemplo

-- Returns: hixyx
SELECT RPAD('hi', 5, 'xy');

Otras funciones de cadenas

ASCII

Devuelve el código ASCII del primer carácter de una cadena.

Sintaxis

ASCII(<str> TEXT)

Tipo de retorno: INTEGER

Ejemplo

-- Returns: 120
SELECT ASCII('x');

CHAR_LENGTH

Devuelve el número de caracteres en una cadena. Equivalente a LENGTH.

Sintaxis

CHAR_LENGTH(<str> TEXT)

Tipo de retorno: INTEGER

Ejemplo

-- Returns: 4
SELECT CHAR_LENGTH('jose');

LENGTH

Devuelve el número de caracteres en una cadena. En la codificación UTF-8, cada carácter chino, dígito o letra cuenta como un carácter. Equivalente a CHAR_LENGTH.

Sintaxis

LENGTH(<str> TEXT)

Tipo de retorno: INTEGER

Ejemplo

-- Returns: 4
SELECT LENGTH('jose');

CHR

Devuelve el carácter correspondiente a un valor de código ASCII o Unicode dado.

Sintaxis

CHR(<num> INT)

Tipo de retorno: TEXT

Ejemplo

-- Returns: A
SELECT CHR(65);

INITCAP

Convierte la primera letra de cada palabra a mayúscula y el resto a minúsculas. Las palabras son secuencias de caracteres alfanuméricos separadas por caracteres no alfanuméricos.

Sintaxis

INITCAP(<str> TEXT)

Tipo de retorno: TEXT

Ejemplo

-- Returns: Hi Thomas
SELECT INITCAP('hi THOMAS');

LOWER

Convierte una cadena a minúsculas.

Sintaxis

LOWER(<str> TEXT)

Tipo de retorno: TEXT

Ejemplo

-- Returns: tom
SELECT LOWER('TOM');

UPPER

Convierte una cadena a mayúsculas.

Sintaxis

UPPER(<str> TEXT)

Tipo de retorno: TEXT

Ejemplo

-- Returns: TOM
SELECT UPPER('tom');

OCTET_LENGTH

Devuelve el número de bytes en una cadena.

Sintaxis

OCTET_LENGTH(<str> TEXT)

Tipo de retorno: INTEGER

Ejemplo

-- Returns: 4
SELECT OCTET_LENGTH('jose');

MD5

Calcula el hash MD5 de una cadena y devuelve el resultado como una cadena hexadecimal.

Sintaxis

MD5(<str> TEXT)

Tipo de retorno: TEXT

Ejemplo

-- Returns: 900150983cd24fb0d6963f7d28e17f72
SELECT MD5('abc');

POSITION

Devuelve la posición inicial de una subcadena dentro de una cadena. Devuelve 0 si no se encuentra la subcadena. Equivalente a STRPOS.

Sintaxis

POSITION(<substr> TEXT IN <str> TEXT)

Parámetros

Parámetro

Obligatorio

Descripción

substr

Sí

La subcadena que se va a buscar.

str

Sí

La cadena de destino.

Tipo de retorno: INTEGER

Ejemplo

-- Returns: 3
SELECT POSITION('om' IN 'Thomas');

STRPOS

Devuelve la posición inicial de una subcadena dentro de una cadena. Devuelve 0 si no se encuentra la subcadena. Equivalente a POSITION.

Sintaxis

STRPOS(<str> TEXT, <substr> TEXT)

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino.

substr

Sí

La subcadena que se va a buscar.

Tipo de retorno: INTEGER

Ejemplo

-- Returns: 2
SELECT STRPOS('high', 'ig');

INSTR

Devuelve la posición de una subcadena dentro de una cadena de destino, con control opcional de la posición inicial y la aparición. Devuelve 0 si no se encuentra la subcadena. Esta es una función compatible con Oracle que requiere la extensión orafce. Para obtener instrucciones de configuración, consulte Oracle-compatible functions.

Sintaxis

INSTR(<str> TEXT, <patt> TEXT [, <start> INTEGER [, <nth> INTEGER]])

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino.

patt

Sí

La subcadena que se va a buscar.

start

No

La posición desde la cual comenzar la búsqueda. Valor predeterminado: 1 (inicio de la cadena).

nth

No

La aparición que se va a buscar. Valor predeterminado: 1 (primera aparición).

Tipo de retorno: INTEGER

Ejemplos

-- Returns: 4 (second occurrence of 'o', searching from position 1)
SELECT INSTR('Hologres', 'o', 1, 2);
-- Returns: 2 (first occurrence of 'o', searching from position 1)
SELECT INSTR('Hologres', 'o', 1, 1);
-- Returns: 4 (first occurrence of 'o' at or after position 4)
SELECT INSTR('Hologres', 'o', 4);
-- Returns: 2 (first occurrence of 'o')
SELECT INSTR('Hologres', 'o');

REPLACE

Reemplaza todas las apariciones de una subcadena dentro de una cadena.

Sintaxis

REPLACE(<str> TEXT, <old_str> TEXT, <new_str> TEXT)

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino.

old_str

Sí

La subcadena que se va a reemplazar.

new_str

Sí

La cadena de reemplazo.

Tipo de retorno: TEXT

Ejemplo

CREATE TABLE animal_test (
    animal text,
    color text
);

INSERT INTO animal_test
    VALUES ('dog', 'white'), ('cat', 'white'), ('tiger', 'yellow');

SELECT animal, REPLACE(color, 'white', 'multi-colored') FROM animal_test;

Resultado:

animal | replace
-------+--------------
dog    | multi-colored
cat    | multi-colored
tiger  | yellow

REGEXP_REPLACE

Reemplaza subcadenas que coinciden con una expresión regular POSIX por una cadena de reemplazo.

Sintaxis

REGEXP_REPLACE(<str> TEXT, <regex> TEXT, <replacement> TEXT [, <flags> TEXT])

Parámetros

Obligatorios:

Parámetro

Descripción

str

La cadena de destino.

regex

La expresión regular POSIX con la que se busca coincidencia.

replacement

La cadena de reemplazo.

Opcionales:

flags: Uno o más caracteres que controlan el comportamiento de coincidencia. Valor predeterminado: reemplaza solo la primera coincidencia, distingue entre mayúsculas y minúsculas.

Marca

Descripción

g

Reemplaza todas las apariciones (el valor predeterminado reemplaza solo la primera).

i

Coincidencia sin distinción entre mayúsculas y minúsculas.

m

Modo multilínea.

s

Modo de línea única: . coincide con saltos de línea.

Tipo de retorno: TEXT

Ejemplo

CREATE TABLE a_test (
    a text
);

INSERT INTO a_test VALUES ('Abcd1234abCd');

SELECT REGEXP_REPLACE(a, '1234.', '77', 'ig') FROM a_test;

Resultado:

regexp_replace
--------------
Abcd77bCd

TRANSLATE

Reemplaza caracteres individuales en una cadena según un mapeo de caracteres.

Sintaxis

TRANSLATE(<str> TEXT, <substr> TEXT, <newstr> TEXT)

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino.

substr

Sí

El conjunto de caracteres que se van a reemplazar.

newstr

Sí

Los caracteres de reemplazo, mapeados posicionalmente a substr. Si newstr es más corta que substr, los caracteres sobrantes en substr se eliminan del resultado.

Tipo de retorno: TEXT

Ejemplo

-- Returns: a2x5
SELECT TRANSLATE('12345', '143', 'ax');

REPEAT

Repite una cadena un número especificado de veces.

Sintaxis

REPEAT(<str> TEXT, <number> INT)

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena que se va a repetir.

number

Sí

El número de repeticiones.

Tipo de retorno: TEXT

Ejemplo

-- Returns: PgPgPgPg
SELECT REPEAT('Pg', 4);

STARTS_WITH

Devuelve verdadero si una cadena comienza con un prefijo especificado.

Sintaxis

STARTS_WITH(<str> TEXT, <prefix> TEXT)

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino.

prefix

Sí

El prefijo que se va a comprobar.

Tipo de retorno: BOOLEAN (t para verdadero, f para falso)

Ejemplo

-- Returns: t
SELECT STARTS_WITH('alphabet', 'alph');

PARSE_IDENT

Analiza sintácticamente una cadena de identificador SQL calificado y devuelve sus componentes como un arreglo. Los componentes sin comillas se convierten a minúsculas; los componentes entre comillas conservan su formato original.

Sintaxis

PARSE_IDENT(<quali_iden> TEXT)

Parámetros

Parámetro

Obligatorio

Descripción

quali_iden

Sí

Un identificador SQL calificado, como un nombre de tabla totalmente calificado.

Tipo de retorno: TEXT (formato de arreglo)

Ejemplo

-- Returns: {"SomeSchema","sometable"}
SELECT PARSE_IDENT('"SomeSchema".someTable');

QUOTE_IDENT

Devuelve la cadena entrecomillada como un identificador SQL válido y agrega comillas dobles cuando es necesario (por ejemplo, cuando la cadena contiene espacios o letras mayúsculas que, de otro modo, se convertirían a minúsculas).

Sintaxis

QUOTE_IDENT(<str> TEXT)

Tipo de retorno: TEXT

Ejemplo

-- Returns: "Foo bar"
SELECT QUOTE_IDENT('Foo bar');

QUOTE_LITERAL

Devuelve la cadena entrecomillada como una constante de cadena SQL válida y escapa las comillas simples según sea necesario.

Sintaxis

QUOTE_LITERAL(<str> TEXT)

Tipo de retorno: TEXT

Ejemplo

-- Returns: 'O''Reilly'
SELECT QUOTE_LITERAL(E'O\'Reilly');

TO_HEX

Convierte un entero a su representación en cadena hexadecimal.

Sintaxis

TO_HEX(<number> INT | BIGINT)

Tipo de retorno: TEXT

Ejemplo

-- Returns: 7fffffff
SELECT TO_HEX(2147483647);

TO_NUMBER

Convierte una cadena con formato a un valor numérico mediante un modelo de formato.

Sintaxis

TO_NUMBER(<str1> TEXT, <str2> TEXT)

Parámetros

Parámetro

Obligatorio

Descripción

str1

Sí

La cadena que se va a convertir.

str2

Sí

El modelo de formato que define cómo analizar sintácticamente la cadena.

Tipo de retorno: NUMERIC

Ejemplo

-- Returns: -12454.8
SELECT TO_NUMBER('12,454.8-', '99G999D9S');

PLVSTR.RVRS

Invierte total o parcialmente una cadena. Esta función es compatible con Oracle y requiere la extensión orafce. Para consultar las instrucciones de configuración, consulte Oracle-compatible functions.

Sintaxis

Invertir toda la cadena:

PLVSTR.RVRS(<str> TEXT)

Invertir desde una posición inicial hasta el final:

PLVSTR.RVRS(<str> TEXT, <start> INTEGER)

Invertir un rango específico:

PLVSTR.RVRS(<str> TEXT, <start> INTEGER, <end> INTEGER)

Parámetros

Parámetro

Obligatorio

Descripción

str

Sí

La cadena de destino.

start

No

La posición inicial del rango que se va a invertir (base 1). Valor predeterminado: 1.

end

No

La posición final del rango que se va a invertir. Valor predeterminado: final de la cadena.

Tipo de retorno: TEXT

Ejemplos

-- Returns: sergoloH (entire string reversed)
SELECT PLVSTR.RVRS('Hologres');
-- Returns: sergo (reversed from position 4 to end)
SELECT PLVSTR.RVRS('Hologres', 4);
-- Returns: rg (positions 5-6 reversed)
SELECT PLVSTR.RVRS('Hologres', 5, 6);

ROW

Devuelve el número de fila de la fila actual. Es compatible con Hologres V1.3 y versiones posteriores.

Para actualizar su instancia a la versión V1.3 o posterior, consulte Upgrade an instance . Para obtener soporte técnico, únase al grupo de DingTalk de Hologres. Para consultar las instrucciones, consulte How do I get more online support? .

Sintaxis

ROW(<val1>, <val2>, ...)

Tipo de retorno: ARRAY o TEXT

Ejemplo

A continuación se muestra un ejemplo que devuelve las filas donde la columna a y la columna b tienen valores iguales.

CREATE TABLE row_test (
    a text,
    b text
);

INSERT INTO row_test VALUES ('0', '0'), ('1', '0');

SELECT a, b FROM row_test WHERE ROW(a, b) = ROW(b, a);

Resultado:

a | b
--+--
0 | 0