MaxCompute proporciona funciones de cadena para truncar, concatenar, convertir, comparar y buscar datos de tipo string en las tablas.
MaxCompute SQL admite a continuación las siguientes funciones de cadena.
|
Función |
Descripción |
|
Devuelve el código ASCII del primer carácter de una cadena. |
|
|
Calcula cuántos caracteres de la cadena A aparecen en la cadena B. |
|
|
Convierte un código ASCII en un carácter. |
|
|
Concatena cadenas. |
|
|
Concatena todas las cadenas de entrada mediante un delimitador específico. |
|
|
Decodifica una cadena con un formato de codificación específico. |
|
|
Codifica una cadena con un formato de codificación específico. |
|
|
Busca la posición de una cadena específica dentro de una cadena separada por comas. |
|
|
Convierte un número en una cadena con un formato específico. |
|
|
Convierte datos binarios con un formato de codificación específico en una cadena UTF-8. |
|
|
Devuelve datos de tipo ARRAY, MAP o STRUCT a partir de una cadena JSON y un formato de salida determinados. |
|
|
Extrae una cadena específica de una cadena JSON estándar mediante un método determinado. |
|
|
Convierte una cadena a formato de título. Cada palabra inicia con mayúscula, continúa con minúsculas y se separa por espacios. |
|
|
Busca la posición de la cadena A dentro de la cadena B. |
|
|
Determina si una cadena se puede convertir del conjunto de caracteres A al conjunto de caracteres B. |
|
|
Extrae de una cadena JSON estándar las cadenas que corresponden a un conjunto de claves de entrada. |
|
|
Divide una cadena en pares clave-valor, separa los pares y devuelve el valor que corresponde a una clave específica. |
|
|
Divide una cadena en varios pares clave-valor, separa los pares y devuelve los valores que corresponden a varias claves específicas. |
|
|
Calcula la longitud de una cadena. |
|
|
Calcula la longitud en bytes de una cadena. |
|
|
Busca la posición de una subcadena específica dentro de una cadena. |
|
|
Rellena una cadena por la izquierda hasta alcanzar una longitud determinada. |
|
|
Elimina caracteres del extremo izquierdo de una cadena. |
|
|
Devuelve un valor hash calculado a partir de una expresión de cadena. |
|
|
Calcula el hash MD5 de una cadena. |
|
|
Analiza una URL y devuelve información sobre una parte específica. |
|
|
Analiza una URL y devuelve información sobre varias partes. |
|
|
Cuenta las subcadenas que coinciden con un patrón específico a partir de una posición determinada. |
|
|
Divide una cadena en grupos según un patrón específico y devuelve la cadena del grupo indicado. |
|
|
Busca en una cadena todas las subcadenas que coinciden con un patrón de expresión regular y las devuelve como un arreglo. |
|
|
Devuelve la posición inicial o final de una subcadena que coincide con un patrón específico. La búsqueda comienza en una posición determinada y considera una ocurrencia concreta. |
|
|
Reemplaza por otra cadena las subcadenas que coinciden con un patrón específico en una ocurrencia determinada. |
|
|
Devuelve una subcadena que coincide con un patrón específico. La búsqueda comienza en una posición determinada y considera una ocurrencia concreta. |
|
|
Devuelve una cadena repetida un número específico de veces. |
|
|
Reemplaza por otra cadena las subcadenas que coinciden con una cadena específica. |
|
|
Devuelve una cadena invertida. |
|
|
Rellena una cadena por la derecha hasta alcanzar una longitud determinada. |
|
|
Elimina caracteres del extremo derecho de una cadena. |
|
|
Convierte una cadena estándar en una cadena SOUNDEX. |
|
|
Genera una cadena de espacios. |
|
|
Divide una cadena mediante un delimitador y devuelve un arreglo. |
|
|
Divide una cadena mediante un delimitador y devuelve una parte específica. |
|
|
Devuelve una subcadena de tipo STRING a partir de una posición y con una longitud determinadas. |
|
|
Devuelve una subcadena de tipo STRING o BINARY a partir de una posición y con una longitud determinadas. |
|
|
Extrae una subcadena antes o después de una ocurrencia específica de un delimitador. |
|
|
Convierte un valor BOOLEAN, BIGINT, DECIMAL o DOUBLE en su representación STRING. |
|
|
Convierte un tipo complejo específico en una cadena JSON. |
|
|
Convierte en minúsculas las letras mayúsculas del inglés dentro de una cadena. |
|
|
Convierte en mayúsculas las letras minúsculas del inglés dentro de una cadena. |
|
|
Reemplaza todas las ocurrencias de la cadena A en la cadena B por la cadena C. |
|
|
Elimina caracteres de ambos extremos de una cadena. |
|
|
Convierte una cadena del formato |
|
|
Codifica una cadena en formato |
Notas de uso
MaxCompute V2.0 incluye funciones adicionales. Si las funciones que utiliza involucran tipos de datos nuevos compatibles con la edición de tipos de datos de MaxCompute V2.0, debe ejecutar la instrucción SET para habilitar dicha edición. Entre los tipos de datos nuevos se encuentran TINYINT, SMALLINT, INT, FLOAT, VARCHAR, TIMESTAMP y BINARY.
Nivel de sesión: para usar la edición de tipos de datos de MaxCompute V2.0, agregue
set odps.sql.type.system.odps2=true;antes de la instrucción SQL que desea ejecutar. Envíe y ejecute ambas instrucciones de forma conjunta.-
Nivel de proyecto: el propietario del proyecto puede habilitar la edición de tipos de datos de MaxCompute V2.0 según los requisitos del proyecto. La configuración surte efecto entre 10 y 15 minutos después. Para habilitar esta edición a nivel de proyecto, ejecute el siguiente comando:
setproject odps.sql.type.system.odps2=true;Para obtener más información sobre
setproject, consulte Project operations. Para conocer las precauciones necesarias al habilitar la edición de tipos de datos de MaxCompute V2.0 a nivel de proyecto, consulte Data type version guide.
Límites
Las siguientes funciones solo admiten caracteres del inglés:
TRIM/RTRIM/LTRIM: el parámetro trimChars solo admite caracteres del inglés.
REVERSE: en modo Hive, solo admite caracteres del inglés.
SOUNDEX: solo convierte caracteres del inglés.
TOLOWER: convierte en minúsculas las letras mayúsculas del inglés dentro de una cadena.
TOUPPER: convierte en mayúsculas las letras minúsculas del inglés dentro de una cadena.
INITCAP: convierte en mayúscula la primera letra inglesa de cada palabra y en minúsculas el resto.
ASCII
-
Sintaxis
bigint ascii(string <str>) -
Descripción
Devuelve el código ASCII del primer carácter de la cadena str.
-
Parámetros
str: obligatorio. Tipo STRING. Si la entrada es de tipo BIGINT, DOUBLE, DECIMAL o DATETIME, se convierte implícitamente al tipo STRING antes del cálculo.
-
Valor devuelto
Devuelve un valor de tipo BIGINT. El valor devuelto sigue estas reglas:
Si str no es de tipo STRING, BIGINT, DOUBLE, DECIMAL o DATETIME, se devuelve un error.
Si str es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: devolver el código ASCII del primer carácter de la cadena
abcde. Instrucción de ejemplo:-- Returns 97. select ascii('abcde'); -
Ejemplo 2: el parámetro de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select ascii(null);
-
CHAR_MATCHCOUNT
-
Sintaxis
bigint char_matchcount(string <str1>, string <str2>) -
Descripción
Calcula cuántos caracteres de str1 aparecen en str2.
-
Parámetros
str1 y str2: obligatorios. Tipo STRING. Ambas cadenas deben ser cadenas UTF-8 válidas. Si durante la comparación se detectan caracteres no válidos (sin codificación Unicode), se devuelve un valor negativo.
-
Valor devuelto
Devuelve un valor de tipo BIGINT. Si str1 o str2 es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: calcular cuántos caracteres de la cadena
aabcaparecen enabcde. Instrucción de ejemplo:-- Returns 4. select char_matchcount('aabc','abcde'); -
Ejemplo 2: uno de los parámetros de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select char_matchcount(null,'abcde');
-
CHR
-
Sintaxis
string chr(bigint <ascii>) -
Descripción
Convierte un código ASCII específico en un carácter.
-
Parámetros
ascii: obligatorio. Valor ASCII de tipo BIGINT. Valores válidos: de 0 a 127. Si la entrada es de tipo STRING, DOUBLE o DECIMAL, se convierte implícitamente al tipo BIGINT antes del cálculo.
-
Valor devuelto
Devuelve un valor de tipo STRING. El valor devuelto sigue estas reglas:
Si el valor de ascii está fuera del rango válido, se devuelve un error.
Si ascii no es de tipo BIGINT, STRING, DOUBLE o DECIMAL, se devuelve un error.
Si ascii es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: convertir el código ASCII
100en un carácter. Instrucción de ejemplo:-- Returns d. select chr(100); -
Ejemplo 2: el parámetro de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select chr(null); -
Ejemplo 3: la entrada es un carácter de tipo STRING. Instrucción de ejemplo:
--The input is implicitly converted to the BIGINT type for the operation, which returns 'd'. select chr('100');
-
CONCAT
-
Sintaxis
array<T> concat(array<T> <a>, array<T> <b>[,...]) string concat(string <str1>, string <str2>[,...]) -
Descripción
Arreglos como entrada: concatena todos los elementos de varios arreglos y devuelve un arreglo nuevo.
Cadenas como entrada: concatena varias cadenas y devuelve una cadena nueva.
-
Parámetros
a y b: obligatorios. Estos parámetros especifican arreglos.
Tenarray<T>indica el tipo de datos de los elementos de los arreglos. Los elementos pueden ser de cualquier tipo de datos. Los elementos del arreglo a y los del arreglo b deben tener el mismo tipo de datos. Los elementos nulos también participan en la operación.str1 y str2: obligatorios. Valores de tipo STRING. Si los valores de entrada son de tipo BIGINT, DOUBLE, DECIMAL o DATETIME, se convierten implícitamente al tipo STRING antes del cálculo. Si los valores de entrada pertenecen a otros tipos de datos, se devuelve un error.
-
Valor devuelto
Se devuelve un valor de tipo ARRAY. Si uno de los arreglos de entrada es null, se devuelve null.
Se devuelve un valor de tipo STRING. Si no se configuran parámetros de entrada o si alguno se establece en null, se devuelve null.
-
Ejemplos
-
Ejemplo 1: concatenar todos los elementos de
array(10, 20)yarray(20, -20). Instrucción de ejemplo:-- The return value is [10, 20, 20, -20]. select concat(array(10, 20), array(20, -20)); -
Ejemplo 2: uno de los arreglos de entrada contiene un elemento null. Instrucción de ejemplo:
-- The return value is [10, null, 20, -20]. select concat(array(10, null), array(20, -20)); -
Ejemplo 3: uno de los arreglos de entrada es null. Instrucción de ejemplo:
-- The return value is null. select concat(array(10, 20), null); -
Ejemplo 4: concatenar las cadenas
aabcyabcde. Instrucción de ejemplo:-- The return value is aabcabcde. select concat('aabc','abcde'); -
Ejemplo 5: la entrada está vacía. Instrucción de ejemplo:
-- The return value is null. select concat(); -
Ejemplo 6: una de las cadenas de entrada es null. Instrucción de ejemplo:
-- The return value is null. select concat('aabc', 'abcde', null);
-
CONCAT_WS
-
Sintaxis
string concat_ws(string <separator>, string <str1>, string <str2>[,...]) string concat_ws(string <separator>, array<string> <a>) -
Descripción
Devuelve una cadena formada por la concatenación de todas las cadenas de entrada o de los elementos de un arreglo mediante el delimitador especificado. Esta función es una extensión de MaxCompute V2.0.
-
Parámetros
separator: obligatorio. Delimitador de tipo STRING.
str1 y str2: se deben especificar como mínimo dos cadenas. Tipo STRING. Si la entrada es de tipo BIGINT, DECIMAL, DOUBLE o DATETIME, se convierte implícitamente al tipo STRING antes del cálculo.
a: obligatorio. Tipo ARRAY. Los elementos del arreglo deben ser de tipo STRING.
-
Valor devuelto
Devuelve un valor de tipo STRING o STRUCT. El valor devuelto sigue estas reglas:
Si str1 o str2 no es de tipo STRING, BIGINT, DECIMAL, DOUBLE o DATETIME, se devuelve un error.
Si no se proporcionan parámetros de entrada o si alguno es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: concatenar las cadenas
nameyhanmeimeimediante:. Instrucción de ejemplo:-- Returns name:hanmeimei. select concat_ws(':','name','hanmeimei');-
-
Ejemplo 2: uno de los parámetros de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select concat_ws(':','avg',null,'34'); -
Ejemplo 3: concatenar los elementos del arreglo
array('name', 'hanmeimei')mediante:. Instrucción de ejemplo:-- Returns name:hanmeimei. select concat_ws(':',array('name', 'hanmeimei'));
-
DECODE
-
Sintaxis
STRING DECODE(BINARY <str>, STRING <charset>) -
Descripción
Decodifica str con el formato que especifica charset.
-
Parámetros
Parámetro
Obligatorio
Descripción
str
Sí
Tipo BINARY. Cadena que se va a decodificar.
charset
Sí
Tipo STRING. Formato de codificación. Valores válidos: UTF-8, UTF-16, UTF-16LE, UTF-16BE, ISO-8859-1, US-ASCII.
NotaLos formatos de codificación ISO-8859-1 y US-ASCII solo admiten caracteres del inglés, no caracteres chinos.
-
Valor devuelto
Devuelve un valor STRING. Si str o charset es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: codificar y decodificar la cadena English Sample con el formato UTF-8. Instrucción de ejemplo:
-- Encode and decode the string.SELECT DECODE(ENCODE("English Sample","UTF-8"), "UTF-8");Resultado:
+-----+| _c0 |+-----+| English Sample |+-----+ -
Ejemplo 2: establecer cualquiera de los parámetros de entrada en NULL. Instrucción de ejemplo:
SELECT DECODE(ENCODE("English Sample","UTF-8"), NULL);Resultado:
+-----+| _c0 |+-----+| NULL |+-----+
-
ENCODE
-
Sintaxis
binary encode(string <str>, string <charset>) -
Descripción
Codifica str con el formato que especifica charset.
-
Parámetros
str: obligatorio. Tipo STRING. Cadena que se va a recodificar.
charset: obligatorio. Tipo STRING. Formato de codificación. Valores válidos: UTF-8, UTF-16, UTF-16LE, UTF-16BE, ISO-8859-1, US-ASCII.
-
Valor devuelto
Devuelve un valor de tipo BINARY. Si str o charset es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: codificar la cadena
abcen formatoUTF-8. Instrucción de ejemplo:-- Returns abc. select encode("abc", "UTF-8"); -
Ejemplo 2: codificar la cadena
abcen formatoUTF-16BE. Instrucción de ejemplo:-- Returns =00a=00b=00c. select encode("abc", "UTF-16BE"); -
Ejemplo 3: uno de los parámetros de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select encode("abc", null);
-
FIND_IN_SET
-
Sintaxis
BIGINT FIND_IN_SET(STRING <str1>, STRING <str2>[, STRING <delimiter>]) -
Descripción
Busca la posición de la cadena str1 dentro de la cadena str2, separada por delimiter. La cuenta comienza en 1.
-
Parámetros
Parámetro
Obligatorio
Descripción
str1
Sí
Tipo STRING. Cadena que se va a buscar.
str2
Sí
Tipo STRING. Cadena separada por delimiter.
delimiter
No
Constante STRING. El valor predeterminado es la coma (
,). El delimitador puede ser un solo carácter o una cadena. -
Valor devuelto
Devuelve un valor de tipo BIGINT. El valor devuelto sigue estas reglas:
Si str2 no contiene str1 o si str1 contiene delimiter, se devuelve 0.
Si str1 o str2 es
NULL, se devuelveNULL.
-
Ejemplos
-
Ejemplo 1: buscar la posición de la cadena
abdentro de la cadenaabc,hello,ab,c, separada por comas (,). Instrucción de ejemplo:SELECT FIND_IN_SET('ab', 'abc,hello,ab,c') AS pos;Resultado:
+------------+ | pos | +------------+ | 3 | +------------+ -
Ejemplo 2: buscar la posición de la cadena
hidentro de la cadenaabc,hello,ab,c, separada por comas (,). Instrucción de ejemplo:SELECT FIND_IN_SET('hi', 'abc,hello,ab,c') AS pos;Resultado:
+------------+ | pos | +------------+ | 0 | +------------+ -
Ejemplo 3: buscar la posición de la cadena
abdentro de la cadenaabc_hello_ab_c, separada por guiones bajos (_). Instrucción de ejemplo:SELECT FIND_IN_SET('ab', 'abc_hello_ab_c', '_') AS pos;Resultado:
+------------+ | pos | +------------+ | 3 | +------------+ -
Ejemplo 4: el parámetro de entrada
str1ostr2esNULL. Instrucción de ejemplo:SELECT FIND_IN_SET(null, 'abc,hello,ab,c') AS pos;Resultado:
+------------+ | pos | +------------+ | NULL | +------------+
-
FORMAT_NUMBER
-
Sintaxis
STRING FORMAT_NUMBER(DOUBLE|BIGINT|INT|SMALLINT|TINYINT|FLOAT|DECIMAL|STRING <expr1>, INT <expr2>) -
Descripción
Convierte expr1 en una cadena con el formato definido por expr2.
Parámetros
expr1: obligatorio. Valor de tipo FLOAT, DOUBLE o DECIMAL. Este parámetro especifica la expresión que desea formatear.
expr2: obligatorio. Valor de tipo INT. Valores válidos: de 0 a 340. Este parámetro indica la cantidad de decimales que desea conservar. También se puede expresar con un formato similar a
#,###,###.##. La cantidad de decimales devueltos varía según el valor de este parámetro.-
Valor devuelto
Se devuelve un valor de tipo STRING. El valor devuelto varía según las siguientes reglas:
Si el valor de
expr2es mayor que 0 y menor o igual a 340, se devuelve un valor redondeado a la cantidad de decimales especificada.Si el valor de
expr2es 0, el valor devuelto contiene solo la parte entera, sin punto ni parte decimal.Si el valor de
expr2es menor que 0 ogreater than 340, se devuelve un error.Si expr1 o expr2 está vacío o se establece en null, se devuelve null.
-
Ejemplos
-
Ejemplo 1: formatear un número según lo especificado. Instrucciones de ejemplo:
-- Returns 5.230. SELECT FORMAT_NUMBER(5.230134523424545456,3); -- Returns 12,332.123. SELECT FORMAT_NUMBER(12332.123456, '#,###,###,###.###'); -
Ejemplo 2: uno de los parámetros de entrada está vacío o es NULL. Instrucciones de ejemplo:
-- Returns NULL. SELECT FORMAT_NUMBER('',3); -- Returns NULL. SELECT FORMAT_NUMBER(null,3);
-
FROM_CHARSET
-
Sintaxis
STRING FROM_CHARSET(binary <source>, string <source_charset>, [string <mode>]) -
Descripción
FROM_CHARSET convierte datos binarios con codificación distinta a UTF-8 en una cadena UTF-8 para realizar cálculos posteriores.
-
Parámetros
source: obligatorio. Valor de tipo BINARY. Este parámetro especifica los datos binarios que desea convertir.
source_charset: obligatorio. Valor de tipo STRING. Este parámetro especifica el formato de codificación original de los datos binarios indicados en source. Valores válidos: UTF-8, UTF-16, UTF-16LE, UTF-16BE, ISO-8859-1, US-ASCII, GB2312, GBK y GB18030.
-
mode: opcional. Valor de tipo STRING. Este parámetro indica el modo de procesamiento cuando un carácter no se puede convertir durante la transformación de los datos binarios de source a una cadena con el formato de codificación especificado. Valores válidos:
NONE: reporta un error. No se aplica ningún procesamiento. Este es el valor predeterminado.
TRANSLIT: reemplaza el carácter por uno similar dentro del formato de codificación especificado.
IGNORE: omite el error y continúa con la ejecución del comando.
-
Valor de retorno
Devuelve un valor de tipo STRING con codificación UTF-8. Cuando los parámetros son NULL o cadenas vacías, el valor de retorno sigue estas reglas:
Si algún parámetro de entrada es NULL, devuelve NULL.
Si algún parámetro de entrada es una cadena vacía, devuelve un error.
-
Ejemplos
-
Ejemplo 1: convertir datos binarios con codificación UTF-8 en una cadena con codificación UTF-8.
SELECT FROM_CHARSET(unhex('e58aa0e6b2b9e9949fe696a4e68bb70a'),'UTF-8', 'TRANSLIT'); -
Ejemplo 2: convertir datos binarios con codificación GBK en una cadena con codificación UTF-8.
SELECT FROM_CHARSET(unhex('b9feb9febac3a4ce'), 'GBK'); -
Ejemplo 3: si un parámetro de entrada es null, se devuelve null.
SELECT FROM_CHARSET(unhex('b9feb9febac3a4ce'), null);
-
FROM_JSON
-
Sintaxis
from_json(<jsonStr>, <schema>) -
Descripción
Devuelve datos de tipo ARRAY, MAP o STRUCT a partir de la cadena JSON jsonStr y del formato de salida schema.
-
Parámetros
jsonStr: obligatorio. La cadena JSON que introdujo.
-
schema: obligatorio. El esquema de la cadena JSON. El valor de este parámetro debe tener el mismo formato que la instrucción para crear una tabla, como
array<bigint>,map<string, array<string>>ostruct<a:int, b:double,.NotaLas claves de una estructura (struct) distinguen entre mayúsculas y minúsculas. También puede especificar una estructura con el formato
a BIGINT, b DOUBLE, que equivale aSTRUCT<a:BIGINT, b:DOUBLE>.A continuación se muestra una tabla que describe las correspondencias entre los tipos de datos JSON y los tipos de datos de MaxCompute.
Tipo de datos JSON
Tipo de datos de MaxCompute
OBJECT
STRUCT, MAP y STRING
ARRAY
ARRAY y STRING
NUMBER
TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, DECIMAL y STRING
BOOLEAN
BOOLEAN y STRING
STRING
STRING, CHAR, VARCHAR, BINARY, DATE y DATETIME
NULL
Todos los tipos
NotaLas cadenas JSON de los tipos OBJECT y ARRAY se analizan tanto como sea posible. Si el tipo de dato de la cadena JSON no corresponde a ningún tipo de dato de MaxCompute, la cadena se omite. Para facilitar su uso, todos los tipos de datos JSON se pueden convertir al tipo STRING compatible con MaxCompute. Al convertir una cadena JSON de tipo NUMBER a un valor FLOAT, DOUBLE o DECIMAL, no se garantiza la precisión del resultado. Se recomienda convertir primero la cadena JSON a un valor STRING y después transformar ese valor al tipo FLOAT, DOUBLE o DECIMAL.
-
Valor de retorno
Se devuelve un valor de tipo ARRAY, MAP o STRUCT.
-
Ejemplos
-
Ejemplo 1: convertir una cadena JSON específica en un valor de un tipo de dato determinado. Instrucción de ejemplo:
-- The return value is {"a":1,"b":0.8}. select from_json('{"a":1, "b":0.8}', 'a int, b double'); -- The return value is {"time":"26/08/2015"}. select from_json('{"time":"26/08/2015"}', 'time string'); -- The return value is {"a":1,"b":0.8}. select from_json('{"a":1, "b":0.8}', 'a int, b double, c string'); -- The return value is [1,2,3]. select from_json('[1, 2, 3, "a"]', 'array<bigint>'); -- The return value is {"d":"v","a":"1","b":"[1,2,3]","c":"{}"}. select from_json('{"a":1,"b":[1,2,3],"c":{},"d":"v"}', 'map<string, string>'); -
Ejemplo 2: usar las funciones
map_keysyfrom_jsonpara obtener todas las claves de una cadena JSON. También puede utilizar JSON_KEYS con el mismo propósito. Instrucción de ejemplo:-- The return value is ["a","b"]. select map_keys(from_json('{"a":1,"b":2}','map<string,string>'));
-
GET_JSON_OBJECT
-
Sintaxis
STRING GET_JSON_OBJECT(JSON|STRING <json>, STRING <json_path>) -- Example: Returns Alice. SELECT GET_JSON_OBJECT(JSON '{"name": "Alice", "age": 30}', '$.name'); -
Descripción
La función GET_JSON_OBJECT extrae una cadena de una cadena JSON o de un valor de tipo JSON mediante una ruta JSON específica, json_path.
-
Notas de uso
La función
GET_JSON_OBJECTno admite sintaxis de expresiones regulares en las rutas JSON.La sintaxis de rutas JSON de la nueva JSON data type difiere de la especificación original. Esto podría generar problemas de compatibilidad.
Si una consulta contiene varias funciones GET_JSON_OBJECT que procesan los mismos datos JSON, la función analiza repetidamente la misma cadena. Esto afecta negativamente el rendimiento e incrementa los costos. Para evitarlo, utilice
GET_JSON_OBJECTjunto con una función definida por el usuario que devuelve tablas (UDTF) para transformar los datos de registro JSON.
-
Parámetros
-
json: obligatorio. Los datos JSON que desea procesar. Este parámetro admite dos tipos de entrada: JSON y STRING.
Tipo JSON: un valor de tipo JSON. Debe tener el formato
{"Key":"Value", "Key":"Value",...}, comoJSON '{"name": "Alice", "age": 30}'.-
Tipo STRING: si la entrada es de tipo STRING, debe cumplir con los siguientes requisitos de formato:
La cadena debe tener el formato
'{"Key":"Value", "Key":"Value",...}', como'{"name": "Alice", "age": 30}'.Las comillas dobles (") deben escaparse con dos barras invertidas (\\).
Las comillas simples (') deben escaparse con una barra invertida (\).
-
json_path: obligatorio. Un valor STRING que especifica la expresión de ruta JSON utilizada para extraer datos. La ruta debe comenzar con el carácter
$, como$.aliyun.test[0].demo. La expresión de ruta utiliza los siguientes caracteres:$: indica el nodo raíz.-
.o['']: indica un nodo secundario. Se usa para analizar objetos JSON, como$.store.book. Si una clave JSON contiene un punto (.), puede utilizar['']en su lugar.La extracción de datos mediante
['']solo es compatible si ejecuta la instrucciónSET odps.sql.udf.getjsonobj.new=true;. []:[number]indica un subíndice de arreglo. El subíndice comienza en 0.*: carácter comodín para[]. Devuelve todo el arreglo. El asterisco (*) no se puede escapar.
-
-
Valor de retorno
Devuelve un valor de tipo STRING. Este valor corresponde a los datos extraídos de la ruta especificada. La función sigue estas reglas para determinar el valor de retorno:
Si json es válido y json_path existe, se devuelve la cadena correspondiente.
Si json está vacío o tiene un formato no válido, se devuelve NULL.
Si json_path contiene
[*], el valor de retorno no tendrá formato de arreglo. Para forzar un formato de arreglo uniforme, ejecute la instrucciónSET odps.sql.force.getjsonobj.array.format=true;.Si json_path no es válido, se devuelve NULL.
Comportamiento de retorno
-
Puede controlar el comportamiento de retorno de la función estableciendo la marca
project-level or session-levelcon el siguiente comando:SET odps.sql.udf.getjsonobj.new=true/false;.Los dos comportamientos de retorno asociados a las distintas configuraciones de la marca son los siguientes:
ImportanteSe recomienda utilizar la configuración
SET odps.sql.udf.getjsonobj.new=true;. Esta opción ofrece un comportamiento más estándar, simplifica el procesamiento de datos y mejora el rendimiento. Si su proyecto de MaxCompute tiene trabajos existentes que dependen del comportamiento de escape de caracteres reservados de JSON, se recomienda mantener el comportamiento original. Así se evitan errores o problemas de exactitud que podrían surgir al cambiar al nuevo comportamiento sin validarlo previamente.Configuración de parámetros
SET odps.sql.udf.getjsonobj.new=true;SET odps.sql.udf.getjsonobj.new=false;Comportamiento de retorno
Devuelve la cadena original sin modificaciones.
Devuelve la cadena con los caracteres reservados de JSON escapados.
El valor de retorno es una cadena JSON que se puede analizar directamente. No necesita usar funciones como
REPLACEoREGEXP_REPLACEpara sustituir las barras invertidas.Los caracteres reservados de JSON, como los saltos de línea (\n) y las comillas ("), se devuelven como las cadenas
'\n'y'\"'.Análisis de claves duplicadas
Un objeto JSON puede contener claves duplicadas y se analiza correctamente.
-- Returns 1. SELECT GET_JSON_OBJECT('{"a":"1","a":"2"}', '$.a');Un objeto JSON no puede contener claves duplicadas. Si las tiene, el análisis podría fallar.
-- Returns NULL. SELECT GET_JSON_OBJECT('{"a":"1","a":"2"}', '$.a');Orden de clasificación de la salida
La salida se ordena igual que la cadena JSON original.
-- Returns {"b":"1","a":"2"}. SELECT GET_JSON_OBJECT('{"b":{"b":"1","a":"2"},"a":"2"}', '$.b');La salida se ordena alfabéticamente.
-- Returns {"a":"2","b":"1"}. SELECT GET_JSON_OBJECT('{"b":{"b":"1","a":"2"},"a":"2"}', '$.b'); Si habilita el modo de compatibilidad con Hive mediante el comando
SET odps.sql.hive.compatible=true;, la funciónGET_JSON_OBJECTconserva las cadenas originales en su valor de retorno.En los proyectos de MaxCompute creados el 21 de enero de 2021 o después, el comportamiento de retorno predeterminado de la función
GET_JSON_OBJECTconsiste en conservar las cadenas originales.En los proyectos de MaxCompute creados antes del 21 de enero de 2021, el comportamiento de retorno predeterminado de la función
GET_JSON_OBJECTconsiste en escapar los caracteres reservados de JSON.-
Utilice el siguiente ejemplo para determinar qué comportamiento emplea la función
GET_JSON_OBJECTen su proyecto de MaxCompute. Para ello, ejecute este comando:SELECT GET_JSON_OBJECT('{"a":"[\\"1\\"]"}', '$.a'); --The return value if the behavior is to escape JSON reserved characters: [\"1\"] --The return value if the behavior is to preserve original strings: ["1"]Para cambiar el comportamiento de retorno predeterminado de la función
GET_JSON_OBJECTde su proyecto y que conserve las cadenas originales, envíe un ticket. Así evita configurar la propiedad a nivel de sesión cada vez que inicie una.
-
Ejemplos
Parámetro de entrada JSON
Ejemplo 1: obtener valores de claves específicas desde datos JSON
-- Returns 1. SELECT GET_JSON_OBJECT(JSON '{"a":1, "b":2}', '$.a'); -- Returns NULL. SELECT GET_JSON_OBJECT(JSON '{"a":1, "b":2}', '$.c');Ejemplo 2: un json_path no válido devuelve NULL.
-- Returns NULL. SELECT GET_JSON_OBJECT(JSON '{"a":1, "b":2}', '$invalid_json_path');Parámetro de entrada STRING
Ejemplo 1: extraer información del objeto JSON
src_json.json-- Prepare the test data. CREATE TABLE IF NOT EXISTS src_json ( json STRING ); INSERT OVERWRITE TABLE src_json VALUES ('{"store": {"fruit":[{"weight":8,"type":"apple"}, {"weight":9,"type":"pear"}], "bicycle":{"price":19.95, "color":"red"}}, "email":"amy@only_for_json_udf_test.net", "owner":"amy"}'); -- Extract the information of the owner field. The return value is amy. SELECT GET_JSON_OBJECT(src_json.json, '$.owner') FROM src_json; -- Optional. Output by preserving the original string. SET odps.sql.udf.getjsonobj.new=true; -- Extract the information of the first array in the store.fruit field. The return value is {"weight":8,"type":"apple"}. SELECT GET_JSON_OBJECT(src_json.json, '$.store.fruit[0]') FROM src_json; -- Extract the information of a non-existent field. The return value is NULL. SELECT GET_JSON_OBJECT(src_json.json, '$.non_exist_key') FROM src_json;Ejemplo 2: extraer información de datos de arreglos JSON
-- Returns 2222. SELECT GET_JSON_OBJECT('{"array":[["aaaa",1111],["bbbb",2222],["cccc",3333]]}','$.array[1][1]'); -- Output by preserving the original string. SET odps.sql.udf.getjsonobj.new=true; -- Returns ["h0","h1","h2"]. SELECT GET_JSON_OBJECT('{"aaa":"bbb","ccc":{"ddd":"eee","fff":"ggg","hhh":["h0","h1","h2"]},"iii":"jjj"}','$.ccc.hhh[*]'); -- Output by escaping JSON reserved characters. SET odps.sql.udf.getjsonobj.new=false; -- Returns ["h0","h1","h2"]. SELECT GET_JSON_OBJECT('{"aaa":"bbb","ccc":{"ddd":"eee","fff":"ggg","hhh":["h0","h1","h2"]},"iii":"jjj"}','$.ccc.hhh[*]'); -- Returns h1. SELECT GET_JSON_OBJECT('{"aaa":"bbb","ccc":{"ddd":"eee","fff":"ggg","hhh":["h0","h1","h2"]},"iii":"jjj"}','$.ccc.hhh[1]');Ejemplo 3: extraer información de datos JSON cuya clave contiene un punto (
.)-- Prepare the test data. CREATE TABLE json_test (id STRING, json STRING); -- Insert data where the key contains a period (.). INSERT INTO TABLE json_test (id, json) VALUES ("1", "{ \"China.beijing\": {\"school\": {\"id\":0,\"book\": [{\"title\": \"A\",\"price\": 8.95}, {\"title\": \"B\",\"price\": 10.2}] } } }" ); -- Insert data where the key does not contain a period (.). INSERT INTO TABLE json_test (id, json) VALUES ("2", "{ \"China_beijing\": {\"school\": {\"id\":0,\"book\": [{\"title\": \"A\",\"price\": 8.95}, {\"title\": \"B\",\"price\": 10.2}] } } }" ); -- Use square brackets [''] to parse data that contains a period (.). -- This extracts the 'id' value under 'China.beijing'. The return value is 0. SELECT GET_JSON_OBJECT(json, "$['China.beijing'].school['id']") FROM json_test WHERE id =1; -- For data without special characters, both '.' and [''] are valid and equivalent. -- This extracts the 'id' value under 'China_beijing'. The return value is 0. SELECT GET_JSON_OBJECT(json, "$['China_beijing'].school['id']") FROM json_test WHERE id =2; SELECT GET_JSON_OBJECT(json, "$.China_beijing.school['id']") FROM json_test WHERE id =2;Ejemplo 4: usar
['']para claves que contienen un punto (.)SET odps.sql.udf.getjsonobj.new=true; -- Returns 1. SELECT GET_JSON_OBJECT('{"a.1":"1","a":"2"}', '$[\'a.1\']');Ejemplo 5: entrada JSON vacía o no válida
-- Returns NULL. SELECT GET_JSON_OBJECT('','$.array[1][1]'); -- Returns NULL. SELECT GET_JSON_OBJECT('"array":["aaaa",1111],"bbbb":["cccc",3333]','$.array[1][1]');Ejemplo 6: cadenas JSON con caracteres de escape
SET odps.sql.udf.getjsonobj.new=true; --Returns "1". SELECT GET_JSON_OBJECT('{"a":"\\"1\\"","b":"2"}', '$.a'); --Returns '1'. SELECT GET_JSON_OBJECT('{"a":"\'1\'","b":"2"}', '$.a');Ejemplo 7: compatibilidad con emojis
-- Returns the emoji symbol. SELECT GET_JSON_OBJECT('{"a":"<Emoji symbol>"}', '$.a');Nota: DataWorks no permite introducir caracteres emoji directamente. Puede usar una herramienta como Data Integration para escribir en MaxCompute las cadenas codificadas que corresponden a los emojis. Después, utilice la función
GET_JSON_OBJECTpara procesarlos.
INITCAP
-
Sintaxis
string initcap(<str>) -
Descripción
Convierte str a formato de título, donde las palabras se separan por espacios. La primera letra de cada palabra queda en mayúscula y el resto en minúsculas.
-
Parámetros
str: obligatorio. Tipo STRING. Cadena de entrada.
-
Valor de retorno
Devuelve una cadena con la primera letra de cada palabra en mayúscula y el resto en minúsculas.
-
Ejemplo
-- Returns Odps Sql. SELECT initcap("oDps sql");
INSTR
-
Sintaxis
bigint instr(string <str1>, string <str2>[, bigint <start_position>[, bigint <nth_appearance>]]) -
Descripción
Busca la posición de la subcadena str2 dentro de la cadena str1.
-
Parámetros
str1: obligatorio. Tipo STRING. Cadena de destino donde se realiza la búsqueda. Si la entrada es BIGINT, DOUBLE, DECIMAL o DATETIME, se convierte implícitamente a STRING. Otros tipos generan un error.
str2: obligatorio. Tipo STRING. Subcadena que se va a buscar. Si la entrada es BIGINT, DOUBLE, DECIMAL o DATETIME, se convierte implícitamente a STRING. Otros tipos generan un error.
start_position: opcional. Valor de tipo BIGINT. Otros tipos de datos generan un error. Este parámetro indica la posición del carácter en str1 desde donde comienza la búsqueda. La posición inicial predeterminada es el primer carácter, es decir, la posición 1. Si start_position es negativo, la búsqueda cuenta hacia atrás desde el final de la cadena: el último carácter ocupa la posición -1, el penúltimo la -2, y así sucesivamente.
nth_appearance: opcional. Valor de tipo BIGINT mayor que 0. Este parámetro indica la posición de la nth_appearance-ésima coincidencia de str2 dentro de str1. Si nth_appearance pertenece a otro tipo de dato o es menor o igual a 0, se devuelve un error.
-
Valor de retorno
Devuelve un valor de tipo BIGINT. El valor de retorno sigue estas reglas:
Si str1 no contiene str2, devuelve 0.
Si str2 está vacía, siempre coincide correctamente. Por ejemplo,
select instr('abc','');devuelve 1.Si str1, str2, start_position o nth_appearance es NULL, devuelve NULL.
-
Ejemplos
-
Ejemplo 1: buscar la posición del carácter
een la cadenaTech on the net. Instrucción de ejemplo:-- Returns 2. select instr('Tech on the net', 'e'); -
Ejemplo 2: buscar la posición de la subcadena
onen la cadenaTech on the net. Instrucción de ejemplo:-- Returns 6. select instr('Tech on the net', 'on'); -
Ejemplo 3: buscar la posición de la segunda aparición del carácter
een la cadenaTech on the net, comenzando desde el tercer carácter. Instrucción de ejemplo:-- Returns 14. select instr('Tech on the net', 'e', 3, 2); -
Ejemplo 4: uno de los parámetros de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select instr('Tech on the net', null);
-
IS_ENCODING
-
Sintaxis
boolean is_encoding(string <str>, string <from_encoding>, string <to_encoding>) -
Descripción
Determina si la cadena de entrada str se puede convertir del juego de caracteres from_encoding a to_encoding. También sirve para detectar texto ilegible; normalmente se establece from_encoding en UTF-8 y to_encoding en GBK.
-
Parámetros
str: obligatorio. Tipo STRING. Las cadenas vacías se consideran válidas para cualquier juego de caracteres.
from_encoding, to_encoding: obligatorio. Tipo STRING. Juegos de caracteres de origen y de destino.
-
Valor de retorno
Devuelve un valor de tipo BOOLEAN. El valor de retorno sigue estas reglas:
Si str se convierte correctamente, devuelve True; de lo contrario, False.
Si str, from_encoding o to_encoding es NULL, devuelve NULL.
JSON_TUPLE
-
Sintaxis
string json_tuple(string <json>, string <key1>, string <key2>,...) -
Descripción
Extrae cadenas de una cadena JSON estándar a partir de un conjunto de claves de entrada, como
(key1,key2,...). -
Parámetros
json: obligatorio. Valor de tipo STRING. Este parámetro especifica una cadena JSON estándar.
key: obligatorio. Valor de tipo STRING. Este parámetro describe la
pathde un objeto JSON dentro de la cadena. El valor no puede comenzar con el signo de dólar ($). Puede introducir varias claves a la vez. MaxCompute analiza los objetos JSON mediante.o['']. Si una clave del objeto JSON incluye un punto(.), puede utilizar[''].
-
Valor de retorno
Se devuelve un valor de tipo STRING.
NotaSi json está vacío o no es válido, se devuelve null.
Si key está vacía, no es válida o no existe en la cadena JSON, se devuelve null.
Si json es válido y key existe, se devuelve la cadena correspondiente.
Esta función puede analizar datos JSON que contienen caracteres chinos.
Esta función puede analizar datos JSON anidados.
Esta función puede analizar datos JSON que contienen arreglos anidados.
El análisis equivale a ejecutar GET_JSON_OBJECT junto con
set odps.sql.udf.getjsonobj.new=true;. Para obtener varios objetos de una cadena JSON, tendría que llamar a la función GET_JSON_OBJECT múltiples veces, lo que provoca que la cadena se analice repetidamente. En cambio, JSON_TUPLE le permite introducir varias claves a la vez y analiza la cadena JSON una sola vez. Por lo tanto, JSON_TUPLE es más eficiente que GET_JSON_OBJECT.JSON_TUPLE es una función definida por el usuario que devuelve tablas (UDTF). Si desea seleccionar algunas columnas de una tabla, utilice JSON_TUPLE junto con la cláusula LATERAL VIEW.
KEYVALUE
-
Sintaxis
keyvalue(string <str>,[string <split1>,string <split2>,] string <key>) keyvalue(string <str>,string <key>) -
Descripción
Divide la cadena str en pares clave-valor mediante split1, separa los pares con split2 y devuelve el valor correspondiente a key.
-
Parámetros
str: obligatorio. Tipo STRING. Cadena que se va a dividir.
split1, split2: opcional. Tipo STRING. Cadenas delimitadoras para la división. Si no se especifican, el valor predeterminado de split1 es
";"y el de split2 es":". Si una subcadena dividida por split1 contiene varios elementos split2, el resultado queda indefinido.key: obligatorio. Tipo STRING. Después de dividir con split1 y split2, devuelve el valor de key.
-
Valor devuelto
Devuelve un valor de tipo STRING. El valor devuelto sigue estas reglas:
Si split1 o split2 es NULL, devuelve NULL.
Si str o key es NULL, o si no existe ninguna key coincidente, devuelve NULL.
Si coinciden varios pares clave-valor, devuelve el valor de la primera key coincidente.
-
Ejemplos
-
Ejemplo 1: divida la cadena
0:1/;1:2en pares clave-valor y devuelva el valor de la clave1. Comando de ejemplo:-- Returns 2. select keyvalue('0:1/;1:2', 1);No se especificaron los parámetros split1 ni split2. El valor predeterminado de split1 es un punto y coma (
";") y el de split2 es dos puntos (":").Tras dividir con split1, los pares clave-valor son
0:1/,1:2. Al dividir con split2, se obtiene lo siguiente:0 1/ 1 2Devuelve el valor 2 para la clave 1.
-
Ejemplo 2: divida la cadena
“\;decreaseStore:1\;xcard:1\;isB2C:1\;tf:21910\;cart:1\;shipping:2\;pf:0\;market:shoes\;instPayAmount:0\;”con“\;”como split1 y":"como split2. Luego, devuelva el valor de la clavetf. Comando de ejemplo:-- Returns 21910. select keyvalue("\;decreaseStore:1\;xcard:1\;isB2C:1\;tf:21910\;cart:1\;shipping:2\;pf:0\;market:shoes\;instPayAmount:0\;","\;",":","tf");Al dividir la cadena
"\;decreaseStore:1\;xcard:1\;isB2C:1\;tf:21910\;cart:1\;shipping:2\;pf:0\;market:shoes\;instPayAmount:0\;"con el delimitador"\;", se generan a continuación los siguientes pares clave-valor.decreaseStore:1,xcard:1,isB2C:1,tf:21910,cart:1,shipping:2,pf:0,market:shoes,instPayAmount:0El resultado de dividir con
":"es el siguiente.decreaseStore 1 xcard 1 isB2C 1 tf 21910 cart 1 shipping 2 pf 0 market shoes instPayAmount 0Devuelve el valor 21910 para la clave
tf.
-
KEYVALUE_TUPLE
-
Sintaxis
KEYVALUE_TUPLE(str, split1, split2, key1, key2, ..., keyN) -
Descripción
Divide la cadena str en pares clave-valor mediante split1, separa los pares con split2 y devuelve los valores de varias claves key.
-
Parámetros
str: obligatorio. Tipo STRING. Cadena que se va a dividir.
split1, split2: obligatorio. Tipo STRING. Cadenas delimitadoras para la división. Si una subcadena dividida por split1 contiene varios elementos split2, el resultado queda indefinido.
key: obligatorio. Tipo STRING. Después de dividir con split1 y split2, devuelve el valor de key.
-
Valor devuelto
Devuelve un valor de tipo STRING. El valor devuelto sigue estas reglas:
Si split1 o split2 es NULL, devuelve NULL.
Si str o key es NULL, o si no existe ninguna key coincidente, devuelve NULL.
-
Ejemplo
-- Create table create table mf_user ( user_id string, user_info string ); -- Insert data insert into mf_user values('1','age:18;genda:f;address:abc'),('2','age:20;genda:m;address:bcd'); -- Query SELECT user_id, KEYVALUE(user_info,';',':','age') as age, KEYVALUE(user_info,';',':','genda') as genda, KEYVALUE(user_info,';',':','address') as address FROM mf_user; -- Equivalent to KEYVALUE query SELECT user_id, age, genda, address FROM mf_user LATERAL VIEW KEYVALUE_TUPLE(user_info,';', ':','age','genda','address') ui AS age,genda,address;El resultado es el siguiente.
+------------+------------+------------+------------+ | user_id | age | genda | address | +------------+------------+------------+------------+ | 1 | 18 | f | abc | | 2 | 20 | m | bcd | +------------+------------+------------+------------+
LENGTH
-
Sintaxis
bigint length(string <str>) -
Descripción
Calcula la longitud de la cadena str.
-
Parámetros
str: obligatorio. Tipo STRING. Si el valor de entrada es BIGINT, DOUBLE, DECIMAL o DATETIME, se convierte implícitamente a STRING.
-
Valor devuelto
Devuelve un valor de tipo BIGINT. El valor devuelto sigue estas reglas:
Si str no es de tipo STRING, BIGINT, DOUBLE, DECIMAL o DATETIME, devuelve un error.
Si str es NULL, devuelve NULL.
Si str no tiene codificación UTF-8, devuelve -1.
-
Ejemplos
-
Ejemplo 1: calcule la longitud de la cadena
Tech on the net. Comando de ejemplo:-- Returns 15. select length('Tech on the net'); -
Ejemplo 2: el parámetro de entrada es NULL. Comando de ejemplo:
-- Returns NULL. select length(null);
-
LENGTHB
-
Sintaxis
bigint lengthb(string <str>) -
Descripción
Calcula la longitud en bytes de la cadena str.
-
Parámetros
str: obligatorio. Tipo STRING. Si el valor de entrada es BIGINT, DOUBLE, DECIMAL o DATETIME, se convierte implícitamente a STRING.
-
Valor devuelto
Devuelve un valor de tipo BIGINT. El valor devuelto sigue estas reglas:
Si str no es de tipo STRING, BIGINT, DOUBLE, DECIMAL o DATETIME, devuelve un error.
Si str es NULL, devuelve NULL.
-
Ejemplos
-
Ejemplo 1: calcule la longitud en bytes de la cadena
Tech on the net. Comando de ejemplo:-- Returns 15. select lengthb('Tech on the net'); -
Ejemplo 2: el parámetro de entrada es NULL. Comando de ejemplo:
-- Returns NULL. select lengthb(null);
-
LOCATE
-
Sintaxis
bigint locate(string <substr>, string <str>[, bigint <start_pos>]) -
Descripción
Busca la posición de la subcadena substr dentro de str. Use start_pos para especificar la posición inicial (el conteo comienza en 1).
-
Parámetros
substr: obligatorio. Tipo STRING. Subcadena que se va a buscar.
str: obligatorio. Tipo STRING. Cadena donde se realiza la búsqueda.
start_pos: opcional. Tipo BIGINT. Posición inicial de la búsqueda.
-
Valor devuelto
Devuelve un valor de tipo BIGINT. El valor devuelto sigue estas reglas:
Si str no contiene substr, devuelve 0.
Si str o substr es NULL, devuelve NULL.
Si start_pos es NULL, devuelve 0.
-
Ejemplos
-
Ejemplo 1: busque la posición de la cadena
abdentro deabchelloabc. Comando de ejemplo:-- Returns 1. select locate('ab', 'abchelloabc'); -
Ejemplo 2: busque la posición de la cadena
hidentro deabchelloabc. Comando de ejemplo:-- Returns 0. select locate('hi', 'abc,hello,ab,c'); -
Ejemplo 3: start_pos es NULL. Comando de ejemplo:
-- Returns 0. select locate('ab', 'abhelloabc', null);
-
LPAD
-
Sintaxis
string lpad(string <str1>, int <length>, string <str2>) -
Descripción
Rellena la cadena str1 por la izquierda hasta alcanzar length caracteres, usando la cadena str2. Esta función es una extensión de MaxCompute V2.0.
-
Parámetros
str1: obligatorio. Tipo STRING. Cadena que se va a rellenar por la izquierda.
length: obligatorio. Tipo INT. Número de caracteres del relleno izquierdo.
str2: obligatorio. Cadena de relleno.
-
Valor devuelto
Devuelve un valor de tipo STRING. El valor devuelto sigue estas reglas:
Si length es menor que la longitud de str1, devuelve los length caracteres más a la izquierda de str1.
Si length es 0, devuelve una cadena vacía.
Si no hay parámetros de entrada o alguno de ellos es NULL, devuelve NULL.
-
Ejemplos
-
Ejemplo 1: use la cadena
12para rellenar por la izquierda la cadenaabcdefghhasta llegar a 10 caracteres. A continuación se muestra el comando de ejemplo.-- Returns 12abcdefgh. select lpad('abcdefgh', 10, '12'); -
Ejemplo 2: utilice la cadena
12para rellenar por la izquierdaabcdefghhasta una longitud de 5 caracteres. Este es el comando de ejemplo.-- Returns abcde. select lpad('abcdefgh', 5, '12'); -
Ejemplo 3: length es 0. Comando de ejemplo:
-- Returns empty string. select lpad('abcdefgh' ,0, '12'); -
Ejemplo 4: uno de los parámetros de entrada es NULL. Comando de ejemplo:
-- Returns NULL. select lpad(null ,0, '12');
-
LTRIM
-
Sintaxis
string ltrim(string <str>[, <trimChars>]) string trim(leading [<trimChars>] from <str>) -
Descripción
Elimina caracteres del extremo izquierdo de str:
Si no se especifica trimChars, elimina los espacios iniciales de forma predeterminada.
Si especifica trimChars, la función trata los caracteres de trimChars como un conjunto. Luego, quita del extremo izquierdo de str la subcadena más larga posible formada exclusivamente por caracteres del conjunto trimChars.
-
Parámetros
str: obligatorio. Tipo STRING. Cadena que se va a recortar. Si el valor de entrada es BIGINT, DECIMAL, DOUBLE o DATETIME, se convierte implícitamente a STRING.
trimChars: opcional. Tipo STRING. Caracteres que se van a eliminar.
-
Valor devuelto
Devuelve un valor de tipo STRING. El valor devuelto sigue estas reglas:
Si str no es de tipo STRING, BIGINT, DOUBLE, DECIMAL o DATETIME, devuelve un error.
Si str o trimChars es NULL, devuelve NULL.
-
Ejemplos
-
Ejemplo 1: elimine los espacios iniciales de la cadena
yxTxyomxx. Comandos de ejemplo:-- Returns yxTxyomxx. select ltrim(' yxTxyomxx '); -- Equivalent to: select trim(leading from ' yxTxyomxx '); -
Ejemplo 2: elimine todos los caracteres iniciales de la cadena
yxTxyomxxque pertenezcan al conjuntoxy.-- Returns Txyomxx. Any leading x or y is removed. select ltrim('yxTxyomxx', 'xy'); -- Equivalent to: select trim(leading 'xy' from 'yxTxyomxx'); -
Ejemplo 3: el parámetro de entrada es NULL. Comandos de ejemplo:
-- Returns NULL. select ltrim(null); select ltrim('yxTxyomxx', null);
-
MASK_HASH
-
Sintaxis
mask_hash(<expr>) -
Descripción
Devuelve un valor hash calculado a partir de la expresión de cadena expr. Los valores hash idénticos indican que las expresiones también lo son.
-
Parámetros
expr: obligatorio. Expresión de cadena para calcular el hash. Admite los tipos STRING, CHAR, VARCHAR y BINARY.
-
Valor devuelto
Devuelve un valor hash de 64 bytes. Para expresiones que no son de cadena, devuelve
null(compatible con Hive). -
Ejemplo
-- Returns hash for abc select mask_hash("abc"); -- Returns +------------+ | _c0 | +------------+ | ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad | +------------+ -- Returns NULL for non-string input select mask_hash(100); -- Returns +------------+ | _c0 | +------------+ | NULL | +------------+
MD5
-
Sintaxis
string md5(string <str>) -
Descripción
Calcula el hash MD5 de la cadena str.
-
Parámetros
str: obligatorio. Tipo STRING. Si el valor de entrada es BIGINT, DOUBLE, DECIMAL o DATETIME, se convierte implícitamente a STRING.
-
Valor devuelto
Devuelve un valor de tipo STRING. El valor devuelto sigue estas reglas:
Si str no es de tipo STRING, BIGINT, DOUBLE, DECIMAL o DATETIME, devuelve un error.
Si str es NULL, devuelve NULL.
-
Ejemplos
-
Ejemplo 1: calcule el hash MD5 de la cadena
Tech on the net. Comando de ejemplo:-- Returns ddc4c4796880633333d77a60fcda9af6. select md5('Tech on the net'); -
Ejemplo 2: el parámetro de entrada es NULL. Comando de ejemplo:
-- Returns NULL. select md5(null);
-
PARSE_URL
-
Sintaxis
string parse_url(string <url>, string <part>[, string <key>]) -
Descripción
Analiza sintácticamente url y extrae la información que indica part.
-
Parámetros
url: obligatorio. Tipo STRING. Enlace URL. Las URL no válidas devuelven un error.
part: obligatorio. Tipo STRING. Valores válidos: HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, USERINFO (no distingue entre mayúsculas y minúsculas).
key: opcional. Cuando part es QUERY, devuelve el valor de key.
-
Descripción del valor devuelto
Devuelve un valor de tipo STRING. El valor devuelto sigue estas reglas:
Si url, part o key es NULL, devuelve NULL.
Si part no es válido, devuelve un error.
-
Ejemplo
-- Returns example.com. select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'HOST'); -- Returns /over/there/index.dtb. select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'PATH'); -- Returns animal. select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'QUERY', 'type'); -- Returns nose. select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'REF'); -- Returns file. select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'PROTOCOL'); -- Returns username:password@example.com:8042. select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'AUTHORITY'); -- Returns username:password. select parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'USERINFO');
PARSE_URL_TUPLE
-
Sintaxis
string parse_url_tuple(string <url>, string <key1>, string <key2>,...) -
Descripción
Analiza sintácticamente url y extrae las cadenas que indican las claves de entrada key1, key2, etcétera. Es similar a PARSE_URL, pero extrae varias claves de forma simultánea y ofrece un mejor rendimiento.
-
Parámetros
url: obligatorio. Tipo STRING. Enlace URL. Las URL no válidas devuelven un error.
-
key1, key2: obligatorio. Tipo STRING. Claves que se van a extraer. Valores válidos:
HOST: dirección del host (dominio o IP).
PATH: ruta al recurso de red en el servidor.
QUERY: cadena de consulta (contenido que se va a consultar).
REF: indica el identificador de fragmento de una URL, es decir, el contenido después del símbolo
#.PROTOCOL: tipo de protocolo.
AUTHORITY: dominio o IP del servidor, puerto e información de autenticación del usuario (nombre de usuario y contraseña).
FILE: ruta y contenido de la consulta (PATH + QUERY).
USERINFO: información de autenticación del usuario.
QUERY:<KEY>: valor de la clave especificada en la cadena de consulta.
No distingue entre mayúsculas y minúsculas. Los valores no válidos devuelven un error.
-
Descripción del valor devuelto
Devuelve un valor de tipo STRING. Si url o key es NULL, devuelve un error.
-
Ejemplo
Extraiga las cadenas de cada clave a partir de
file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose. Comando de ejemplo:select parse_url_tuple('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'HOST', 'PATH', 'QUERY', 'REF', 'PROTOCOL', 'AUTHORITY', 'FILE', 'USERINFO', 'QUERY:type', 'QUERY:name') as (item0, item1, item2, item3, item4, item5, item6, item7, item8, item9);Devuelve:
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ | item0 | item1 | item2 | item3 | item4 | item5 | item6 | item7 | item8 | item9 | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ | example.com | /over/there/index.dtb | type=animal&name=narwhal | nose | file | username:password@example.com:8042 | /over/there/index.dtb?type=animal&name=narwhal | username:password | animal | narwhal | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
REGEXP_COUNT
-
Sintaxis
bigint regexp_count(string <source>, string <pattern>[, bigint <start_position>]) -
Descripción
Cuenta las subcadenas de source que coinciden con el pattern especificado, a partir de start_position.
-
Parámetros
source: obligatorio. Tipo STRING. Cadena donde se realiza la búsqueda. Otros tipos devuelven un error.
pattern: obligatorio. Constante STRING o expresión regular. Patrón que se va a buscar. Para obtener más lineamientos sobre expresiones regulares, consulte RLIKE string matching. Un pattern vacío o no válido devuelve un error.
start_position: opcional. Constante de tipo BIGINT. Su valor debe ser mayor que 0. Si pertenece a otro tipo de datos o es menor o igual a 0, se devuelve un error. Si no especifica este parámetro, el valor predeterminado es 1, lo que indica que la búsqueda comienza desde el primer carácter de la cadena source.
-
Valor devuelto
Devuelve un valor de tipo BIGINT. El valor devuelto sigue estas reglas:
Si no se encuentran coincidencias, devuelve 0.
Si source, pattern o start_position es NULL, devuelve NULL.
-
Ejemplos
-
Ejemplo 1: cuente las subcadenas coincidentes en
abababca partir de la posición indicada. Comandos de ejemplo:-- Returns 1. select regexp_count('abababc', 'a.c'); -- Returns 2. select regexp_count('abababc', '[[:alpha:]]{2}', 3); -
Ejemplo 2: uno de los parámetros de entrada es NULL. Comando de ejemplo:
-- Returns NULL. select regexp_count('abababc', null); -
Ejemplo 3: cuente las apariciones de
:en la cadena JSON{"account_id":123456789,"account_name":"allen","location":"hangzhou","bill":100}. Comando de ejemplo:-- Returns 4. select regexp_count('{"account_id":123456789,"account_name":"allen","location":"hangzhou","bill":100}',':');
-
REGEXP_EXTRACT
-
Sintaxis
string regexp_extract(string <source>, string <pattern>[, bigint <groupid>])NotaEn las versiones compatibles con los tipos de datos de Hive,
REGEXP_EXTRACTsigue la especificación de expresiones regulares de Java. En las versiones de tipos de datos 1.0 y 2.0, sigue la especificación de MaxCompute. -
Descripción
Divide la cadena source en grupos mediante pattern y devuelve la cadena del grupo groupid.
-
Parámetros
source: obligatorio. Tipo STRING. Cadena que se va a dividir.
pattern: obligatorio. Constante STRING o expresión regular. Patrón que se va a buscar. Para obtener más lineamientos sobre expresiones regulares, consulte RLIKE string matching.
groupid: opcional. Constante BIGINT, debe ser ≥0.
NotaLos datos se almacenan en formato UTF-8. Los caracteres chinos se pueden representar en hexadecimal dentro del rango [\\x{4e00},\\x{9fa5}].
-
Valor devuelto
Devuelve un valor de tipo STRING. El valor devuelto sigue estas reglas:
Si pattern es una cadena vacía o no se especificó ningún grupo en pattern, se devuelve un error.
Si groupid no es de tipo BIGINT o es menor que 0, se devuelve un error. Si no especifica este parámetro, el valor predeterminado es 1, lo que indica que se devuelve la subcadena del primer grupo. Si establece groupid en 0, se devuelve la subcadena que coincide con todo el pattern.
Si source, pattern o groupid es NULL, devuelve NULL.
REGEXP_EXTRACT_ALL
-
Sintaxis
array<T> regexp_extract_all(string <source>, string <pattern>[,bigint <group_id>]) -
Descripción
Busca todas las subcadenas que coinciden con un patrón de expresión regular dentro de una cadena y las devuelve como un arreglo.
-
Parámetros
source: obligatorio. Tipo STRING. La cadena que se va a analizar.
pattern: obligatorio. Tipo STRING. El patrón que se debe coincidir. Puede ser una constante STRING o una expresión regular. Para obtener más directrices sobre expresiones regulares, consulte RLIKE string matching.
group_id: opcional. Un valor BIGINT. Este parámetro especifica el ID del grupo que se usa para coincidir con el patrón. El valor de este parámetro debe ser mayor o igual que
0. Si no especifica este parámetro, se utiliza el grupo con un group_id de1para coincidir con el patrón. Si establece este parámetro en0, el pattern se evalúa como un todo.
-
Valor devuelto
Se devuelve un valor ARRAY. Si especifica group_id, se devuelve un arreglo que contiene todos los resultados coincidentes para el group_id indicado. Si no especifica group_id, se devuelve un arreglo con todos los resultados coincidentes para el group_id
1. -
Ejemplo
-
Si no especifica group_id, el comportamiento predeterminado consiste en devolver los resultados que coinciden con el primer group_id.
SELECT regexp_extract_all('100-200, 300-400', '(\\d+)-(\\d+)');Devuelve:
+------------+ | _c0 | +------------+ | [100,300] | +------------+ -
Si establece el valor de group_id en
2, se devuelve el resultado coincidente del segundo group_id.SELECT regexp_extract_all('100-200, 300-400', '(\\d+)-(\\d+)',2);A continuación se muestra el resultado.
+------------+ | _c0 | +------------+ | [200,400] | +------------+
-
REGEXP_INSTR
-
Sintaxis
bigint regexp_instr(string <source>, string <pattern>[,bigint <start_position>[, bigint <occurrence>[, bigint <return_option>]]]) -
Descripción
Devuelve la posición inicial o final de la occurrence especificada de una subcadena que coincide con pattern dentro de source. La búsqueda comienza desde start_position.
-
Parámetros
source: obligatorio. La cadena de origen. El tipo de datos debe ser STRING.
pattern: obligatorio. El patrón que se debe coincidir. El valor puede ser una constante STRING o una expresión regular. Para obtener más información sobre expresiones regulares, consulte RLIKE string matching. Un pattern vacío devuelve un error.
start_position: opcional. La posición desde donde inicia la búsqueda. El valor debe ser una constante BIGINT. El valor predeterminado es 1.
occurrence: opcional. La aparición de la coincidencia que se desea buscar. El valor debe ser una constante BIGINT. El valor predeterminado es 1, lo cual indica la primera coincidencia.
return_option: opcional. La posición que se va a devolver. El valor debe ser una constante BIGINT. Valores válidos: 0 indica la posición inicial y 1 indica la posición final. El valor predeterminado es 0. Si especifica un valor no válido, se devuelve un error.
-
Valor devuelto
El valor devuelto es de tipo BIGINT. El parámetro return_option determina si se devuelve la posición inicial o final de la subcadena coincidente en source. El valor devuelto se rige por las siguientes reglas:
Si pattern está vacío, se devuelve un error.
Si el valor de start_position o de occurrence no es una constante BIGINT, o bien es menor o igual que 0, se devuelve un error.
Si el valor de source, pattern, start_position, occurrence o return_option es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: devolver la posición inicial de la
2.ª aparición de una subcadena que coincide cono[[:alpha:]]{1}en la cadenai love www.taobao.com. La búsqueda comienza en la posición3. Instrucción de ejemplo:-- Returns 14. select regexp_instr('i love www.taobao.com', 'o[[:alpha:]]{1}', 3, 2); -
Ejemplo 2: devolver la posición final de la
secondaparición de una subcadena que coincide cono[[:alpha:]]{1}en la cadenai love www.taobao.com. La búsqueda comienza en elthirdcarácter. Instrucción de ejemplo:-- Returns 16. select regexp_instr('i love www.taobao.com', 'o[[:alpha:]]{1}', 3, 2, 1); -
Ejemplo 3: un parámetro de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select regexp_instr('i love www.taobao.com', null, 3, 2);
-
REGEXP_REPLACE
-
Sintaxis
string regexp_replace(string <source>, string <pattern>, string <replace_string>[, bigint <occurrence>])NotaPara los tipos de datos compatibles con Hive, la función
REGEXP_REPLACEsigue la especificación de expresiones regulares de Java. Para los tipos de datos 1.0 y 2.0, sigue la especificación de MaxCompute. -
Descripción
Reemplaza la subcadena que coincide con pattern en la posición indicada por occurrence dentro de la cadena source. Utiliza replace_string para el reemplazo y devuelve el resultado.
-
Parámetros
source: obligatorio. Un valor de tipo STRING. Es la cadena de origen que se va a modificar.
pattern: obligatorio. Una constante STRING o una expresión regular. Es el patrón que se debe coincidir. Para obtener más información sobre las reglas de expresiones regulares, consulte RLIKE string matching. Si pattern está vacío, se devuelve un error.
-
replace_string: obligatorio. Un valor de tipo STRING. Es la cadena que sustituye a la subcadena que coincide con pattern.
NotaSi replace_string es una cadena vacía, la función elimina la subcadena que coincide con pattern.
El parámetro replace_string admite referencias inversas con el formato \n. Estas permiten insertar la subcadena que coincide con el n-ésimo grupo de captura de pattern. El valor de n puede ser un número entero del 1 al 9. El valor \0 inserta toda la subcadena que coincide con pattern. Debe escapar las barras diagonales inversas (por ejemplo, \\1) o usar una cadena sin procesar (por ejemplo, R'(\1)').
occurrence: opcional. Una constante de tipo BIGINT que debe ser mayor o igual que 0. Este parámetro indica que la cadena coincidente con el patrón especificado, en la n-ésima aparición definida por occurrence, se reemplaza por replace_string. Si establece este parámetro en 0, se reemplazan todas las subcadenas que coinciden con el patrón. Si el valor pertenece a otro tipo de datos o es menor que 0, se devuelve un error. Valor predeterminado: 0.
-
Valor devuelto
Se devuelve un valor de tipo STRING. El valor devuelto se rige por las siguientes reglas:
Si hace referencia a un grupo que no existe, el resultado queda indefinido.
Si replace_string es NULL y se encuentra una coincidencia para pattern, se devuelve NULL.
Si replace_string es NULL y pattern no coincide, la función devuelve la cadena original.
Si source, pattern o occurrence es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: reemplazar subcadenas según reglas específicas.
-- Returns Abcd. select regexp_replace("abcd", "a", "A", 0); -- Returns bcd. select regexp_replace("abcd", "a", "", 0); -- Returns 19700101. select regexp_replace("1970-01-01", "-", "", 0); -- Returns abc. select regexp_replace("a1b2c3", "[0-9]", "", 0); -- Returns a1b2c. select regexp_replace("a1b2c3", "[0-9]", "", 3); -
Ejemplo 2: reemplazar todas las coincidencias del patrón
([[:digit:]]{3})\\.([[:digit:]]{3})\\.([[:digit:]]{4})en la cadena123.456.7890por(\\1)\\2-\\3. Instrucción de ejemplo:-- Returns (123)456-7890. select regexp_replace('123.456.7890', '([[:digit:]]{3})\\.([[:digit:]]{3})\\.([[:digit:]]{4})', '(\\1)\\2-\\3', 0); -
Ejemplo 3: reemplazar las subcadenas que coinciden con un patrón en la cadena
abcdsegún reglas específicas. Instrucciones de ejemplo:-- Returns a b c d. select regexp_replace('abcd', '(.)', '\\1 ', 0); -- Returns a bcd. select regexp_replace('abcd', '(.)', '\\1 ', 1); -- Returns d. select regexp_replace("abcd", "(.*)(.)$", "\\2", 0); -
Ejemplo 4: la tabla url_set contiene una columna URL cuyos valores tienen el formato
www.simple@xxx.com. La partexxxes única para cada fila. En este ejemplo se reemplazan todos los caracteres posteriores awww. Instrucción de ejemplo:-- Returns wwwtest. select regexp_replace(url,'(www)(.*)','wwwtest',0) from url_set; -
Ejemplo 5: un parámetro de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select regexp_replace('abcd', '(.)', null, 0); -
Ejemplo 6: hacer referencia a un grupo que no existe. Instrucciones de ejemplo:
-- Pattern defines only one group; second group reference doesn't exist. -- Avoid this usage; result is undefined. regexp_replace("abcd", "(.)", "\\2", 0) = "" or "abcd" -- Pattern has no groups; \1 references non-existent group. -- Avoid this usage; result is undefined. regexp_replace("abcd", "a", "\\1", 0) = "bcd" or "abcd"
-
REGEXP_SUBSTR
-
Sintaxis
string regexp_substr(string <source>, string <pattern>[, bigint <start_position>[, bigint <occurrence>]]) -
Descripción
Devuelve la subcadena de la cadena source que coincide con pattern por la occurrence-ésima vez. La búsqueda comienza desde start_position.
-
Parámetros
source: obligatorio. Tipo STRING. La cadena en la que se realiza la búsqueda.
pattern: obligatorio. Constante STRING o expresión regular. El patrón que se debe coincidir. La sintaxis de las expresiones regulares se describe en RLIKE string matching.
start_position: opcional. Constante BIGINT. El valor debe ser mayor que 0. Si no especifica este parámetro, el valor predeterminado es 1, lo cual indica que la búsqueda comienza en el primer carácter de la cadena source.
occurrence: opcional. Constante BIGINT. El valor debe ser mayor que 0. El valor predeterminado es 1, lo cual indica la primera coincidencia.
-
Valor devuelto
Devuelve un valor STRING. El valor devuelto se rige por las siguientes reglas:
Si pattern está vacío, se produce un error.
Si no se encuentra ninguna coincidencia, se devuelve NULL.
Si start_position o occurrence no es de tipo BIGINT, o bien es menor o igual que 0, se produce un error.
Si source, pattern, start_position o occurrence es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: devolver la subcadena que coincide con el patrón especificado en
I love aliyun very much. Instrucción de ejemplo:-- Returns aliyun. select regexp_substr('I love aliyun very much', 'a[[:alpha:]]{5}'); -- Returns have. select regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 1); -- Returns 2. select regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 2); -
Ejemplo 2: uno de los parámetros de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select regexp_substr('I love aliyun very much', null);
-
REPEAT
-
Sintaxis
string repeat(string <str>, bigint <n>) -
Descripción
Devuelve la cadena str repetida n veces.
-
Parámetros
str: obligatorio. Tipo STRING. Si la entrada es BIGINT, DOUBLE, DECIMAL o DATETIME, se convierte implícitamente a STRING.
n: obligatorio. Tipo BIGINT. El tamaño del valor no debe superar los 2 MB.
-
Valor devuelto
Devuelve un valor de tipo STRING. El valor devuelto se rige por las siguientes reglas:
Si str no es de tipo STRING, BIGINT, DOUBLE, DECIMAL o DATETIME, se devuelve un error.
Si n está vacío, se devuelve un error.
Si str o n es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: repetir la cadena
abc5veces. Instrucción de ejemplo:-- Returns abcabcabcabcabc. select repeat('abc', 5); -
Ejemplo 2: uno de los parámetros de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select repeat('abc', null);
-
REPLACE
-
Sintaxis
string replace(string <str>, string <old>, string <new>) -
Descripción
Reemplaza todas las apariciones de old por new dentro de str y devuelve la cadena str modificada. Si no se encuentran coincidencias, se devuelve la cadena str original. Esta función es una extensión de MaxCompute V2.0.
-
Parámetros
str: obligatorio. Tipo STRING. La cadena de origen.
old: obligatorio. La cadena que se va a comparar.
new: obligatorio. Tipo STRING. La cadena de reemplazo.
-
Valor devuelto
Devuelve un valor de tipo STRING. Si algún parámetro de entrada es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: reemplazar todas las apariciones de la subcadena
ababpor12en la cadenaababab. Instrucción de ejemplo:-- Returns 12ab. select replace('ababab','abab','12'); -
Ejemplo 2: uno de los parámetros de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select replace('123abab456ab',null,'abab');
-
REVERSE
-
Sintaxis
string reverse(string <str>) -
Descripción
Devuelve la cadena str en orden inverso.
-
Parámetros
str: obligatorio. Un parámetro de tipo STRING. Si la entrada es un valor BIGINT, DOUBLE, DECIMAL o DATETIME, se convierte implícitamente al tipo STRING.
-
Valor devuelto
Devuelve un valor de tipo STRING. Se aplican las siguientes reglas:
Si el tipo de datos de str no es STRING, BIGINT, DOUBLE, DECIMAL o DATETIME, se devuelve un error.
Si str es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: invertir la cadena
I love aliyun very much. Instrucción de ejemplo:-- Returns hcum yrev nuyila evol I. select reverse('I love aliyun very much'); -
Ejemplo 2: el parámetro de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select reverse(null);
-
RPAD
-
Sintaxis
string rpad(string <str1>, int <length>, string <str2>) -
Descripción
Rellena la cadena str1 por la derecha hasta alcanzar length caracteres. Para ello, utiliza la cadena de relleno str2. Esta función es una extensión de MaxCompute V2.0.
-
Parámetros
str1: obligatorio. Tipo STRING. La cadena que se va a rellenar por la derecha.
length: obligatorio. Tipo INT. Debe ser mayor o igual que 0. Indica el número de caracteres del resultado tras aplicar el relleno.
str2 (obligatorio): la cadena que se usa para el relleno.
-
Valor devuelto
Devuelve un valor de tipo STRING. El valor devuelto se rige por las siguientes reglas:
Si length es menor que la longitud de str1, se devuelven los length caracteres más a la izquierda de str1.
Si length es 0, se devuelve una cadena vacía.
Si no hay parámetros de entrada o alguno de ellos es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: rellenar la cadena
abcdefghpor la derecha hasta 10 caracteres mediante la cadena de relleno12. Instrucción de ejemplo:-- Returns abcdefgh12. select rpad('abcdefgh', 10, '12'); -
Ejemplo 2: rellenar la cadena
abcdefghpor la derecha hasta 5 caracteres mediante la cadena de relleno12. Instrucción de ejemplo:-- Returns abcde. select rpad('abcdefgh', 5, '12'); -
Ejemplo 3: length es 0. Instrucción de ejemplo:
-- Returns empty string. select rpad('abcdefgh' ,0, '12'); -
Ejemplo 4: uno de los parámetros de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select rpad(null ,0, '12');
-
RTRIM
-
Sintaxis
string rtrim(string <str>[, <trimChars>]) string trim(trailing [<trimChars>] from <str>) -
Descripción
Elimina caracteres del extremo derecho de str:
Si no se especifica trimChars, se eliminan los espacios de forma predeterminada.
Si se especifica trimChars, los caracteres de trimChars se tratan como un conjunto. Se elimina la subcadena más larga del extremo derecho de str que esté compuesta exclusivamente por caracteres del conjunto trimChars.
-
Parámetros
str: obligatorio. Tipo STRING. La cadena a la que se le quitarán los caracteres. Si la entrada es BIGINT, DECIMAL, DOUBLE o DATETIME, se convierte implícitamente a STRING.
trimChars: opcional. Tipo STRING. Los caracteres que se van a eliminar.
-
Valor devuelto
Devuelve un valor de tipo STRING. El valor devuelto se rige por las siguientes reglas:
Si str no es de tipo STRING, BIGINT, DOUBLE, DECIMAL o DATETIME, se devuelve un error.
Si str o trimChars es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: eliminar los espacios finales de la cadena
yxTxyomxx. Instrucciones de ejemplo:-- Returns yxTxyomxx. select rtrim(' yxTxyomxx '); -- Equivalent to: select trim(trailing from ' yxTxyomxx '); -
Ejemplo 2: eliminar todos los caracteres finales de la cadena
yxTxyomxxque pertenezcan al conjuntoxy.-- Returns yxTxyom. Any trailing x or y is removed. select rtrim('yxTxyomxx', 'xy'); -- Equivalent to: select trim(trailing 'xy' from 'yxTxyomxx'); -
Ejemplo 3: el parámetro de entrada es NULL. Instrucciones de ejemplo:
-- Returns NULL. select rtrim(null); select rtrim('yxTxyomxx', null);
-
SOUNDEX
-
Sintaxis
string soundex(string <str>) -
Descripción
Convierte una cadena estándar en una cadena SOUNDEX.
-
Parámetros
str: obligatorio. La cadena que se va a convertir. Este parámetro es de tipo STRING. Esta función es una extensión de MaxCompute V2.0.
-
Valor devuelto
El valor devuelto es de tipo STRING. Si str es NULL, la función devuelve NULL.
-
Ejemplos
-
Ejemplo 1: convertir la cadena
helloen una cadena SOUNDEX. Instrucción de ejemplo:-- Returns H400. select soundex('hello'); -
Ejemplo 2: el parámetro de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select soundex(null);
-
SPACE
-
Sintaxis
string space(bigint <n>) -
Descripción
Genera una cadena formada por n espacios.
-
Parámetros
n: obligatorio. Tipo BIGINT. El tamaño del valor no debe superar los 2 MB.
-
Valor devuelto
Devuelve un valor STRING. El valor devuelto se rige por las siguientes reglas:
Si n está vacío, se devuelve un error.
Si n es NULL, se devuelve NULL.
-
Ejemplo
-- Returns 10. select length(space(10));
SPLIT
-
Sintaxis
ARRAY<STRING> SPLIT(STRING <source>, STRING <delimiter>[, BOOLEAN <trimTailEmpty>]) -- Standard example. -- Returns ["a","b","c"]. SELECT SPLIT('a,b,c', ','); -
Parámetros
source: obligatorio. La cadena que se va a dividir. El tipo de datos es STRING.
delimiter: obligatorio. El separador que se usa para dividir la cadena. Este parámetro es compatible con regular expressions. El tipo de datos es STRING.
trimTailEmpty: opcional. Indica si se conservan las cadenas vacías finales. El valor predeterminado es
true. Si establece este parámetro enfalse, se conservan las cadenas vacías finales. El tipo de datos es BOOLEAN.
-
Valor devuelto
Devuelve un valor de tipo ARRAY<STRING>.
-
Ejemplo
-
Ejemplo 1: dividir una cadena mediante una coma.
-- Returns ["a","b","c"]. SELECT SPLIT('a,b,c', ','); -
Ejemplo 2: manejar casos en los que el separador no existe.
-- Returns ["a,b,c"]. SELECT SPLIT('a,b,c', ':'); -
Ejemplo 3: manejar separadores consecutivos. Esto genera un elemento de cadena vacía.
-- Returns ["a","","b"]. SELECT SPLIT('a,,b', ','); -
Ejemplo 4: usar un separador de varios caracteres.
-- Returns ["a","b","c"]. SELECT SPLIT('a::b::c', '::'); -
Ejemplo 5: conservar las cadenas vacías finales.
-- By default, trailing empty strings are not returned. -- Returns ["a","b","c"]. SELECT SPLIT('a,b,c,,', ','); -- Return trailing empty strings. -- Returns ["a","b","c","",""]. SELECT SPLIT('a,b,c,,', ',', false); -
Ejemplo 6: usar un carácter de escape o un carácter especial como separador.
-- Split by a line feed. -- Returns ["hello","world"]. SELECT SPLIT('hello\nworld', '\n'); -- Split by a tab character. -- Returns ["a","b","c"]. SELECT SPLIT('a\tb\tc', '\t'); -- Split by a carriage return. -- Returns ["line1","line2"]. SELECT SPLIT('line1\rline2', '\r'); -- Escape a backslash. -- Returns ["a","b","c"]. SELECT SPLIT('a\\b\\c', '\\\\'); -
Ejemplo 7: manejar entradas NULL.
-- If any parameter is NULL, the function returns NULL. -- Returns NULL. SELECT SPLIT(NULL, ','); -- Returns NULL. SELECT SPLIT('a,b,c', NULL); -- Returns NULL. SELECT SPLIT('a,b,c', ',', NULL);
-
SPLIT_PART
-
Sintaxis
string split_part(string <str>, string <separator>, bigint <start>[, bigint <end>]) -
Descripción
Divide la cadena str con el delimitador separator y devuelve la subcadena que va desde la parte start hasta end (intervalo cerrado).
-
Parámetros
str: obligatorio. Tipo STRING. La cadena que se va a dividir. Si el valor de entrada es BIGINT, DOUBLE, DECIMAL o DATETIME, se convierte implícitamente a STRING.
separator: obligatorio. Constante de tipo STRING. El delimitador (un solo carácter o una cadena).
start: obligatorio. Constante de tipo BIGINT, debe ser mayor que 0. Indica el número de la parte inicial (el conteo comienza en 1).
end: constante de tipo BIGINT mayor o igual que start. Este parámetro especifica el número del segmento final que se devolverá. Si no se especifica, su valor predeterminado es el de start, por lo que solo se devuelve el segmento indicado por start.
-
Descripción del valor devuelto
Devuelve un valor de tipo STRING. El resultado se rige por las siguientes reglas:
Si start supera la cantidad real de partes (por ejemplo, hay 6 partes pero start > 6), se devuelve una cadena vacía.
Si separator no se encuentra en str y start = 1, se devuelve str completa. Si str está vacía, se devuelve una cadena vacía.
Si separator está vacío, se devuelve str original.
Si end supera la cantidad de partes, se devuelve la subcadena desde start hasta la última parte.
Si str no es de tipo STRING, BIGINT, DOUBLE, DECIMAL o DATETIME, se devuelve un error.
Si separator no es una constante de tipo STRING, se devuelve un error.
Si start o end no es una constante de tipo BIGINT, se devuelve un error.
Si cualquier parámetro, excepto separator, es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: divida la cadena
a,b,c,dcon el delimitador,y devuelva las partes indicadas. Instrucciones de ejemplo:-- Returns a. select split_part('a,b,c,d', ',', 1); -- Returns a,b. select split_part('a,b,c,d', ',', 1, 2); -
Ejemplo 2: start supera la cantidad real de partes. Instrucción de ejemplo:
-- Returns empty string. select split_part('a,b,c,d', ',', 10); -
Ejemplo 3: separator no se encuentra en str. Instrucciones de ejemplo:
-- Returns a,b,c,d. select split_part('a,b,c,d', ':', 1); -- Returns empty string. select split_part('a,b,c,d', ':', 2); -
Ejemplo 4: separator está vacío. Instrucción de ejemplo:
-- Returns a,b,c,d. select split_part('a,b,c,d', '', 1); -
Ejemplo 5: end supera la cantidad real de partes. Instrucción de ejemplo:
-- Returns b,c,d. select split_part('a,b,c,d', ',', 2, 6); -
Ejemplo 6: cualquier parámetro de entrada, excepto separator, es NULL. Instrucción de ejemplo:
-- Returns NULL. select split_part('a,b,c,d', ',', null);
-
SUBSTR
-
Sintaxis
string substr(string <str>, bigint <start_position>[, bigint <length>]) -
Descripción
Devuelve una subcadena de str que comienza en start_position y tiene una longitud de length.
-
Parámetros
str: obligatorio. Tipo STRING. Si el valor de entrada es BIGINT, DECIMAL, DOUBLE o DATETIME, se convierte implícitamente a STRING.
-
start_position: obligatorio. Tipo BIGINT. La posición de inicio predeterminada es 1.
Versión de tipos de datos compatible con Hive: si start_position=0, el comportamiento es el mismo que en la posición 1.
Versiones de tipos de datos 1.0 y 2.0: si start_position=0, se devuelve NULL.
-
length: opcional. Tipo BIGINT. La longitud de la subcadena debe ser >0.
ImportanteSi
setproject odps.function.strictmode=false: un valor length<0 devuelve un espacio en blanco.Si
setproject odps.function.strictmode=true: un valor length<0 devuelve un error.
-
Valor devuelto
Devuelve un valor de tipo STRING. El resultado se rige por las siguientes reglas:
Si str no es de tipo STRING, BIGINT, DECIMAL, DOUBLE o DATETIME, se devuelve un error.
Si length no es de tipo BIGINT o es ≤0, se devuelve un error.
Si omite length, la subcadena se extiende hasta el final de str.
Si str, start_position o length es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: devuelva una subcadena de
abcdesde la posición indicada y con la longitud especificada. Instrucciones de ejemplo:-- Returns bc. select substr('abc', 2); -- Returns b. select substr('abc', 2, 1); -- Returns bc. select substr('abc',-2 , 2); -
Ejemplo 2: cuando un parámetro de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select substr('abc', null);
-
SUBSTRING
-
Sintaxis
string substring(string|binary <str>, int <start_position>[, int <length>]) -
Descripción
Devuelve una subcadena de str que comienza en start_position y tiene una longitud de length.
-
Parámetros
str: obligatorio. Este parámetro es de tipo STRING o BINARY.
start_position: obligatorio. Este parámetro es de tipo INT. La posición inicial comienza en 1. Si start_position es 0, se devuelve una cadena vacía. Si start_position es un valor negativo, la posición se cuenta hacia atrás desde el final de la cadena. En este caso, -1 corresponde al último carácter y el conteo continúa de forma secuencial hacia atrás.
length: opcional. Este parámetro es de tipo BIGINT. La longitud de la subcadena debe ser mayor que 0.
-
Valor devuelto
El valor devuelto es de tipo STRING y cumple las siguientes reglas:
Si str no es de tipo STRING o BINARY, se devuelve un error.
Si length no es de tipo BIGINT o es menor o igual que 0, se devuelve un error.
Cuando se omite el parámetro length, se devuelve una subcadena hasta el final de str.
Si str, start_position o length es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: este ejemplo devuelve una subcadena de
abcdesde una posición específica y con una longitud determinada. Instrucciones de ejemplo:-- Returns bc. select substring('abc', 2); -- Returns b. select substring('abc', 2, 1); -- Returns bc. select substring('abc',-2,2); -- Returns ab. select substring('abc',-3,2); -- Returns 001. substring(bin(2345), 2, 3); -
Ejemplo 2: este ejemplo muestra un caso en el que uno de los parámetros de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select substring('abc', null, null);
-
SUBSTRING_INDEX
-
Sintaxis
string substring_index(string <str>, string <separator>, int <count>) -
Descripción
Esta función extrae una subcadena de str, ya sea antes o después de la aparición número count de un delimitador. Si count es positivo, la búsqueda del delimitador comienza desde la izquierda. Si count es negativo, la búsqueda comienza desde la derecha. Esta función es una extensión de MaxCompute V2.0.
-
Parámetros
str: obligatorio. Tipo STRING. Es la cadena de la que se extraerá la subcadena.
separator: obligatorio. Delimitador de tipo STRING.
count: obligatorio. Valor de tipo INT que indica la posición del separador.
-
Valor devuelto
La función devuelve un valor de tipo STRING. Si algún parámetro de entrada es NULL, devuelve NULL.
-
Ejemplos
-
Ejemplo 1: extracción de la cadena
https://www.alibabacloud.com. Instrucciones de ejemplo:-- Returns https://www.alibabacloud. select substring_index('https://www.alibabacloud.com', '.', 2); -- Returns alibabacloud.com. select substring_index('https://www.alibabacloud.com', '.', -2); -
Ejemplo 2: un parámetro de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select substring_index('https://www.alibabacloud.com', null, 2);
-
TO_CHAR
-
Sintaxis
string to_char(boolean <value>) string to_char(bigint <value>) string to_char(double <value>) string to_char(decimal <value>) -
Descripción
Convierte valores de tipo BOOLEAN, BIGINT, DECIMAL o DOUBLE a su representación en STRING.
-
Parámetros
value: obligatorio. Un valor de tipo BOOLEAN, BIGINT, DECIMAL o DOUBLE.
-
Valor devuelto
Devuelve un valor de tipo STRING. El resultado se rige por las siguientes reglas:
Si value no es de tipo BOOLEAN, BIGINT, DECIMAL o DOUBLE, la función devuelve un error.
Si value es NULL, la función devuelve NULL.
-
Ejemplos
-
Ejemplo 1: convierta valores a su representación en STRING. Instrucción de ejemplo:
-- Returns 123. select to_char(123); -- Returns TRUE. select to_char(true); -- Returns 1.23. select to_char(1.23); -
Ejemplo 2: el parámetro de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select to_char(null);
-
TO_JSON
-
Sintaxis
string to_json(<expr>) -
Descripción
Convierte una expresión de un tipo de dato complejo determinado, indicada por expr, en una cadena JSON.
-
Parámetros
expr: obligatorio. Una expresión de tipo ARRAY, MAP o STRUCT.
NotaSi la expresión de entrada es de tipo STRUCT (
struct<key1:value1, key2:value2>), tenga en cuenta lo siguiente:Todas las claves se convierten a minúsculas cuando la expresión se transforma en una cadena JSON.
Si un
valuees null, el par clave-valor al que pertenece dichovalueno se incluye en la cadena JSON devuelta. Por ejemplo, sivalue2es null,key2:value2no se incluye en la cadena JSON resultante.
-
Valor devuelto
Se devuelve una cadena JSON.
-
Ejemplos
-
Ejemplo 1: convierta una expresión de un tipo de dato complejo determinado en una cadena JSON. Instrucción de ejemplo:
-- The return value is {"a":1,"b":2}. select to_json(named_struct('a', 1, 'b', 2)); -- The return value is {"time":"26/08/2015"}. select to_json(named_struct('time', "26/08/2015")); -- The return value is [{"a":1,"b":2}]. select to_json(array(named_struct('a', 1, 'b', 2))); -- The return value is {"a":{"b":1}}. select to_json(map('a', named_struct('b', 1))); -- The return value is {"a":1}. select to_json(map('a', 1)); -- The return value is [{"a":1}]. select to_json(array((map('a', 1)))); -
Ejemplo 2: la expresión de entrada es de tipo STRUCT. Instrucción de ejemplo:
-- The return value is {"a":"B"}. If the expression of the STRUCT type is converted into a JSON string, all keys are converted into lowercase letters. select to_json(named_struct("A", "B")); -- The return value is {"k2":"v2"}. The key-value pair to which null belongs is not included in the JSON string that is returned. select to_json(named_struct("k1", cast(null as string), "k2", "v2"));
-
TOLOWER
-
Sintaxis
string tolower(string <source>) -
Descripción
Convierte a minúsculas las letras mayúsculas del inglés en la cadena source.
-
Parámetros
source: obligatorio. Un valor de tipo STRING. Si el valor de entrada es BIGINT, DOUBLE, DECIMAL o DATETIME, se convierte implícitamente a STRING. Esta función opera únicamente sobre caracteres del inglés.
-
Valor devuelto
Devuelve un valor de tipo STRING. El resultado se basa en las siguientes reglas:
Si el tipo de dato de source no es STRING, BIGINT, DOUBLE, DECIMAL o DATETIME, se devuelve un error.
Si source es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: convierta letras mayúsculas a minúsculas. Instrucciones de ejemplo:
-- Returns abcd. select tolower('aBcd'); -
Ejemplo 2: el parámetro de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select tolower(null);
-
TOUPPER
-
Sintaxis
string toupper(string <source>) -
Descripción
Convierte a mayúsculas los caracteres en minúscula de la cadena source.
-
Parámetros
source: obligatorio. Tipo STRING. Si el valor de entrada es BIGINT, DOUBLE, DECIMAL o DATETIME, se convierte implícitamente a STRING. Solo admite caracteres del inglés.
-
Valor devuelto
Devuelve un valor de tipo STRING. El resultado se basa en las siguientes reglas:
Si el tipo de dato de source no es STRING, BIGINT, DOUBLE, DECIMAL o DATETIME, se devuelve un error.
Si source es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: convierta letras minúsculas a mayúsculas. Instrucciones de ejemplo:
-- Returns ABCD. select toupper('aBcd'); -
Ejemplo 2: el parámetro de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select toupper(null);
-
TRANSLATE
-
Sintaxis
string translate(string|varchar <str1>, string|varchar <str2>, string|varchar <str3>) -
Descripción
Reemplaza cada carácter de str1 que aparece en str2 por el carácter correspondiente de str3. Si no hay coincidencias, no se aplica ningún reemplazo. Esta función es una extensión de MaxCompute V2.0.
-
Valor devuelto
Devuelve un valor de tipo STRING. Si algún parámetro de entrada es NULL, la función devuelve NULL.
-
Ejemplos
-
Ejemplo 1: reemplace cada carácter de
abababque aparezca enababpor el carácter correspondiente decd. Instrucción de ejemplo:-- Returns cdcdcd. select translate('ababab','abab','cd'); -
Ejemplo 2: reemplace cada carácter de
abababque aparezca enababpor el carácter correspondiente decdefg. Instrucción de ejemplo:-- Returns cdcdcd. select translate('ababab','abab','cdefg'); -
Ejemplo 3: uno de los parámetros de entrada es NULL. Instrucción de ejemplo:
-- Returns NULL. select translate('ababab','cd',null);
-
TRIM
-
Sintaxis
string trim(string <str>[,<trimChars>]) string trim([BOTH] [<trimChars>] from <str>) -
Descripción
Elimina caracteres de ambos extremos de str:
Si no especifica trimChars, la función elimina los espacios de forma predeterminada.
Si especifica trimChars, la función trata los caracteres de trimChars como un conjunto. Luego, quita las subcadenas más largas posibles formadas exclusivamente por caracteres de ese conjunto, tanto del extremo izquierdo como del derecho de str.
-
Parámetros
str: obligatorio. Tipo STRING. La cadena a la que se le quitarán los caracteres. Si el valor de entrada es BIGINT, DECIMAL, DOUBLE o DATETIME, se convierte implícitamente a STRING.
trimChars: opcional. Tipo STRING. Los caracteres que se van a eliminar.
-
Valor devuelto
Devuelve un valor de tipo STRING. El resultado se rige por las siguientes reglas:
Si str no es de tipo STRING, BIGINT, DOUBLE, DECIMAL o DATETIME, se devuelve un error.
Si str o trimChars es NULL, se devuelve NULL.
-
Ejemplos
-
Ejemplo 1: elimine los espacios de ambos extremos de la cadena
yxTxyomxx. Instrucciones de ejemplo:-- Returns yxTxyomxx. select trim(' yxTxyomxx '); -- Equivalent to: select trim(both from ' yxTxyomxx '); select trim(from ' yxTxyomxx '); -
Ejemplo 2: elimine de ambos extremos de la cadena
yxTxyomxxtodos los caracteres que pertenezcan al conjuntoxy.-- Returns Txyom. Any x or y on either end is removed. select trim('yxTxyomxx', 'xy'); -- Equivalent to: select trim(both 'xy' from 'yxTxyomxx'); select trim('xy' from 'yxTxyomxx'); -
Ejemplo 3: el parámetro de entrada es NULL. Instrucciones de ejemplo:
-- Returns NULL. select trim(null); select trim('yxTxyomxx', null);
-
URL_DECODE
-
Sintaxis
string url_decode(string <input>[, string <encoding>]) -
Descripción
Convierte una cadena de entrada del formato
application/x-www-form-urlencoded MIMEa caracteres estándar. Esta función es la inversa deurl_encode. Las reglas de codificación son las siguientes:Los caracteres a–z y A–Z permanecen sin cambios.
El punto (.), el guion (-), el asterisco (*) y el guion bajo (_) permanecen sin cambios.
El signo más (+) se convierte en un espacio.
Las secuencias con formato
%xyse convierten en valores de bytes. Los bytes consecutivos se decodifican en cadenas mediante el nombre de encoding especificado.Todos los demás caracteres permanecen sin cambios.
-
Parámetros
input: este parámetro es obligatorio y de tipo STRING. Representa la cadena de entrada.
encoding: este parámetro es opcional y especifica el formato de codificación. Admite formatos como GBK y UTF-8. Si no se especifica, la codificación predeterminada es UTF-8.
-
Valor devuelto
Esta función devuelve un valor de tipo STRING codificado en UTF-8. Si el parámetro input o encoding es NULL, la función devuelve NULL.
-
Ejemplo
-- Returns examplefor url_decode:// (fdsf). select url_decode('%E7%A4%BA%E4%BE%8Bfor+url_decode%3A%2F%2F+%28fdsf%29'); -- Returns Example for URL_DECODE:// dsf(fasfs). select url_decode('Example+for+url_decode+%3A%2F%2F+dsf%28fasfs%29', 'GBK');
URL_ENCODE
-
Sintaxis
string url_encode(string <input>[, string <encoding>]) -
Descripción
Codifica una cadena de entrada en formato
application/x-www-form-urlencoded MIME. Reglas de codificación:Las letras a–z y A–Z permanecen sin cambios.
El punto (.), el guion (-), el asterisco (*) y el guion bajo (_) permanecen sin cambios.
Los espacios se convierten en signos más (+).
Todos los demás caracteres se convierten en valores de bytes mediante el encoding especificado. Cada byte se representa como
%xy, dondexyes la representación hexadecimal del carácter.
-
Parámetros
input: obligatorio. Tipo STRING. La cadena de entrada.
encoding: opcional. El formato de codificación. Los formatos compatibles incluyen GBK y UTF-8. Si no se especifica, el valor predeterminado es UTF-8.
-
Valor devuelto
Devuelve un valor de tipo STRING. Si input o encoding es NULL, se devuelve NULL.
-
Ejemplo
-- Returns %E7%A4%BA%E4%BE%8Bfor+url_encode%3A%2F%2F+%28fdsf%29. select url_encode('examplefor url_encode:// (fdsf)'); -- Returns Example+for+url_encode+%3A%2F%2F+dsf%28fasfs%29. select url_encode('Example for url_encode:// dsf(fasfs)', 'GBK');
Referencias
Para ir más allá de las funciones integradas, cree funciones definidas por el usuario (UDF). Para obtener más información, consulte Overview.