O MaxCompute fornece funções de string para truncar, concatenar, converter, comparar e pesquisar dados de string em tabelas.
O SQL do MaxCompute oferece suporte às seguintes funções de string.
|
Função |
Descrição |
|
Retorna o código ASCII do primeiro caractere em uma string. |
|
|
Calcula o número de caracteres da string A que aparecem na string B. |
|
|
Converte um código ASCII em um caractere. |
|
|
Concatena strings. |
|
|
Concatena todas as strings de entrada usando um delimitador especificado. |
|
|
Decodifica uma string usando um formato de codificação especificado. |
|
|
Codifica uma string usando um formato de codificação especificado. |
|
|
Encontra a posição de uma string especificada em uma string separada por vírgulas. |
|
|
Converte um número em uma string em um formato especificado. |
|
|
Converte dados binários em um formato de codificação especificado para uma string UTF-8. |
|
|
Retorna dados do tipo ARRAY, MAP ou STRUCT com base em uma string JSON e um formato de saída fornecidos. |
|
|
Extrai uma string especificada de uma string JSON padrão usando um método específico. |
|
|
Converte uma string para o formato de título, onde cada palavra começa com uma letra maiúscula seguida de letras minúsculas, separadas por espaços. |
|
|
Localiza a posição da string A na string B. |
|
|
Determina se uma string pode ser convertida do conjunto de caracteres A para o conjunto de caracteres B. |
|
|
Extrai strings correspondentes a um conjunto de chaves de entrada de uma string JSON padrão. |
|
|
Divide uma string em pares chave-valor, separa os pares e retorna o valor correspondente a uma chave especificada. |
|
|
Divide uma string em vários pares chave-valor, separa os pares e retorna os valores correspondentes a várias chaves especificadas. |
|
|
Calcula o comprimento de uma string. |
|
|
Calcula o comprimento em bytes de uma string. |
|
|
Encontra a posição de uma substring especificada dentro de uma string. |
|
|
Preenche uma string à esquerda até um comprimento especificado. |
|
|
Remove caracteres da extremidade esquerda de uma string. |
|
|
Retorna um valor de hash calculado a partir de uma expressão de string. |
|
|
Calcula o hash MD5 de uma string. |
|
|
Analisa uma URL e retorna informações sobre uma parte especificada. |
|
|
Analisa uma URL e retorna informações sobre várias partes. |
|
|
Conta substrings que correspondem a um padrão especificado a partir de uma posição específica. |
|
|
Divide uma string em grupos com base em um padrão especificado e retorna a string de um grupo específico. |
|
|
Encontra todas as substrings que correspondem a um padrão de expressão regular em uma string e as retorna como um array. |
|
|
Retorna a posição inicial ou final de uma substring que corresponde a um padrão especificado para uma ocorrência específica, a partir de uma posição determinada. |
|
|
Substitui substrings que correspondem a um padrão especificado para uma ocorrência específica por outra string. |
|
|
Retorna uma substring que corresponde a um padrão especificado para uma ocorrência específica, a partir de uma posição determinada. |
|
|
Retorna uma string repetida um número especificado de vezes. |
|
|
Substitui substrings que correspondem a uma string especificada por outra string. |
|
|
Retorna o inverso de uma string. |
|
|
Preenche uma string à direita até um comprimento especificado. |
|
|
Remove caracteres da extremidade direita de uma string. |
|
|
Converte uma string padrão em uma string SOUNDEX. |
|
|
Gera uma string de espaços. |
|
|
Divide uma string usando um delimitador e retorna um array. |
|
|
Divide uma string usando um delimitador e retorna uma parte especificada. |
|
|
Retorna uma substring de uma string do tipo STRING a partir de uma posição especificada com um comprimento determinado. |
|
|
Retorna uma substring de uma string do tipo STRING ou BINARY a partir de uma posição especificada com um comprimento determinado. |
|
|
Extrai uma substring antes ou depois de uma ocorrência especificada de um delimitador. |
|
|
Converte um valor BOOLEAN, BIGINT, DECIMAL ou DOUBLE em sua representação STRING. |
|
|
Converte um tipo complexo especificado em uma string JSON. |
|
|
Converte letras maiúsculas em inglês em uma string para minúsculas. |
|
|
Converte letras minúsculas em inglês em uma string para maiúsculas. |
|
|
Substitui todas as ocorrências da string A na string B pela string C. |
|
|
Remove caracteres de ambas as extremidades de uma string. |
|
|
Converte uma string do formato |
|
|
Codifica uma string no formato |
Notas de uso
O MaxCompute V2.0 fornece funções adicionais. Se as funções que você usa envolvem novos tipos de dados suportados na edição de tipos de dados do MaxCompute V2.0, você deve executar a instrução SET para ativar a edição de tipos de dados do MaxCompute V2.0. Os novos tipos de dados incluem TINYINT, SMALLINT, INT, FLOAT, VARCHAR, TIMESTAMP e BINARY.
Nível de sessão: Para usar a edição de tipos de dados do MaxCompute V2.0, adicione
set odps.sql.type.system.odps2=true;antes da instrução SQL que deseja executar e envie-as e execute-as juntas.-
Nível de projeto: O proprietário do projeto pode ativar a edição de tipos de dados do MaxCompute V2.0 para o projeto com base nos requisitos do projeto. A configuração entra em vigor após 10 a 15 minutos. Para ativar a edição de tipos de dados do MaxCompute V2.0 no nível do projeto, execute o seguinte comando:
setproject odps.sql.type.system.odps2=true;Para obter mais informações sobre
setproject, consulte Project operations. Para obter mais informações sobre as precauções que você deve tomar ao ativar a edição de tipos de dados do MaxCompute V2.0 no nível do projeto, consulte Data type version guide.
Limitações
As seguintes funções aceitam apenas caracteres em inglês:
TRIM/RTRIM/LTRIM: O parâmetro trimChars aceita apenas caracteres em inglês.
REVERSE: Aceita apenas caracteres em inglês no modo Hive.
SOUNDEX: Converte apenas caracteres em inglês.
TOLOWER: Converte letras maiúsculas em inglês em uma string para minúsculas.
TOUPPER: Converte letras minúsculas em inglês em uma string para maiúsculas.
INITCAP: Converte a primeira letra em inglês de cada palavra para maiúscula e o restante para minúsculas.
ASCII
-
Sintaxe
bigint ascii(string <str>) -
Descrição
Retorna o código ASCII do primeiro caractere na string str.
-
Parâmetros
str: obrigatório. Tipo STRING. Se a entrada for do tipo BIGINT, DOUBLE, DECIMAL ou DATETIME, ela será convertida implicitamente para o tipo STRING antes do cálculo.
-
Valor de retorno
Retorna um valor do tipo BIGINT. O valor de retorno segue estas regras:
Se str não for do tipo STRING, BIGINT, DOUBLE, DECIMAL ou DATETIME, a função retorna um erro.
Se str for NULL, retorna NULL.
-
Exemplos
-
Exemplo 1: Retornar o código ASCII do primeiro caractere na string
abcde. Instrução de exemplo:-- Returns 97. select ascii('abcde'); -
Exemplo 2: O parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select ascii(null);
-
CHAR_MATCHCOUNT
-
Sintaxe
bigint char_matchcount(string <str1>, string <str2>) -
Descrição
Calcula quantos caracteres em str1 aparecem em str2.
-
Parâmetros
str1 e str2: obrigatórios. Tipo STRING. Ambas as strings devem ser strings UTF-8 válidas. Se caracteres inválidos (não codificados em Unicode) forem encontrados durante a comparação, a função retorna um valor negativo.
-
Valor de retorno
Retorna um valor do tipo BIGINT. Se str1 ou str2 for NULL, retorna NULL.
-
Exemplos
-
Exemplo 1: Calcular quantos caracteres da string
aabcaparecem emabcde. Instrução de exemplo:-- Returns 4. select char_matchcount('aabc','abcde'); -
Exemplo 2: Um parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select char_matchcount(null,'abcde');
-
CHR
-
Sintaxe
string chr(bigint <ascii>) -
Descrição
Converte um código ASCII especificado em um caractere.
-
Parâmetros
ascii: obrigatório. Valor ASCII do tipo BIGINT. Valores válidos: 0 a 127. Se a entrada for do tipo STRING, DOUBLE ou DECIMAL, ela será convertida implicitamente para o tipo BIGINT antes do cálculo.
-
Valor de retorno
Retorna um valor do tipo STRING. O valor de retorno segue estas regras:
Se o valor ascii estiver fora do intervalo válido, a função retorna um erro.
Se ascii não for do tipo BIGINT, STRING, DOUBLE ou DECIMAL, a função retorna um erro.
Se ascii for NULL, retorna NULL.
-
Exemplos
-
Exemplo 1: Converter o código ASCII
100em um caractere. Instrução de exemplo:-- Returns d. select chr(100); -
Exemplo 2: O parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select chr(null); -
Exemplo 3: A entrada é um caractere do tipo STRING. Instrução de exemplo:
--The input is implicitly converted to the BIGINT type for the operation, which returns 'd'. select chr('100');
-
CONCAT
-
Sintaxe
array<T> concat(array<T> <a>, array<T> <b>[,...]) string concat(string <str1>, string <str2>[,...]) -
Descrição
Arrays como entradas: Concatena todos os elementos de vários arrays e retorna um novo array.
Strings como entradas: Concatena várias strings e retorna uma nova string.
-
Parâmetros
a e b: obrigatórios. Esses parâmetros especificam arrays.
Temarray<T>especifica o tipo de dados dos elementos nos arrays. Os elementos podem ser de qualquer tipo de dados. Os elementos no Array a e os elementos no Array b devem ser do mesmo tipo de dados. Os elementos nulos também participam da operação.str1 e str2: obrigatórios. Valores do tipo STRING. Se os valores de entrada forem do tipo BIGINT, DOUBLE, DECIMAL ou DATETIME, eles serão convertidos implicitamente em valores do tipo STRING antes do cálculo. Se os valores de entrada forem de outros tipos de dados, a função retorna um erro.
-
Valor de retorno
Retorna um valor do tipo ARRAY. Se um dos arrays de entrada for nulo, retorna nulo.
Retorna um valor do tipo STRING. Se nenhum parâmetro de entrada for configurado ou se um parâmetro de entrada for definido como nulo, retorna nulo.
-
Exemplos
-
Exemplo 1: Concatenar todos os elementos de
array(10, 20)earray(20, -20). Instrução de exemplo:-- The return value is [10, 20, 20, -20]. select concat(array(10, 20), array(20, -20)); -
Exemplo 2: Um dos arrays de entrada contém um elemento nulo. Instrução de exemplo:
-- The return value is [10, null, 20, -20]. select concat(array(10, null), array(20, -20)); -
Exemplo 3: Um dos arrays de entrada é nulo. Instrução de exemplo:
-- The return value is null. select concat(array(10, 20), null); -
Exemplo 4: Concatenar as strings
aabceabcde. Instrução de exemplo:-- The return value is aabcabcde. select concat('aabc','abcde'); -
Exemplo 5: A entrada está vazia. Instrução de exemplo:
-- The return value is null. select concat(); -
Exemplo 6: Uma das strings de entrada é nula. Instrução de exemplo:
-- The return value is null. select concat('aabc', 'abcde', null);
-
CONCAT_WS
-
Sintaxe
string concat_ws(string <separator>, string <str1>, string <str2>[,...]) string concat_ws(string <separator>, array<string> <a>) -
Descrição
Retorna uma string formada pela concatenação de todas as strings de entrada ou elementos de array usando o delimitador especificado. Esta função é uma extensão no MaxCompute V2.0.
-
Parâmetros
separator: obrigatório. Delimitador do tipo STRING.
str1 e str2: Pelo menos duas strings devem ser especificadas. Tipo STRING. Se a entrada for do tipo BIGINT, DECIMAL, DOUBLE ou DATETIME, ela será convertida implicitamente para o tipo STRING antes do cálculo.
a: obrigatório. Tipo ARRAY. Os elementos do array devem ser do tipo STRING.
-
Valor de retorno
Retorna um valor do tipo STRING ou STRUCT. O valor de retorno segue estas regras:
Se str1 ou str2 não for do tipo STRING, BIGINT, DECIMAL, DOUBLE ou DATETIME, a função retorna um erro.
Se nenhum parâmetro de entrada for fornecido ou se qualquer parâmetro de entrada for NULL, retorna NULL.
-
Exemplos
-
Exemplo 1: Concatenar as strings
nameehanmeimeiusando:. Instrução de exemplo:-- Returns name:hanmeimei. select concat_ws(':','name','hanmeimei');-
-
Exemplo 2: Um parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select concat_ws(':','avg',null,'34'); -
Exemplo 3: Concatenar elementos no array
array('name', 'hanmeimei')usando:. Instrução de exemplo:-- Returns name:hanmeimei. select concat_ws(':',array('name', 'hanmeimei'));
-
DECODE
-
Sintaxe
STRING DECODE(BINARY <str>, STRING <charset>) -
Descrição
Decodifica str usando o formato especificado por charset.
-
Parâmetros
Parâmetro
Obrigatório
Descrição
str
Sim
Tipo BINARY. A string a ser decodificada.
charset
Sim
Tipo STRING. Formato de codificação. Valores válidos: UTF-8, UTF-16, UTF-16LE, UTF-16BE, ISO-8859-1, US-ASCII.
NotaOs formatos de codificação ISO-8859-1 e US-ASCII atualmente aceitam apenas caracteres em inglês, não em chinês.
-
Valor de retorno
Retorna STRING. Se str ou charset for NULL, retorna NULL.
-
Exemplos
-
Exemplo 1: Codificar e decodificar a string English Sample com base no formato UTF-8. Instrução de exemplo:
-- Encode and decode the string.SELECT DECODE(ENCODE("English Sample","UTF-8"), "UTF-8");Retorno:
+-----+| _c0 |+-----+| English Sample |+-----+ -
Exemplo 2: Definir qualquer um dos parâmetros de entrada como NULL. Instrução de exemplo:
SELECT DECODE(ENCODE("English Sample","UTF-8"), NULL);Retorno:
+-----+| _c0 |+-----+| NULL |+-----+
-
ENCODE
-
Sintaxe
binary encode(string <str>, string <charset>) -
Descrição
Codifica str usando o formato especificado por charset.
-
Parâmetros
str: obrigatório. Tipo STRING. A string a ser recodificada.
charset: obrigatório. Tipo STRING. Formato de codificação. Valores válidos: UTF-8, UTF-16, UTF-16LE, UTF-16BE, ISO-8859-1, US-ASCII.
-
Valor de retorno
Retorna um tipo BINARY. Se str ou charset for NULL, retorna NULL.
-
Exemplos
-
Exemplo 1: Codificar a string
abcno formatoUTF-8. Instrução de exemplo:-- Returns abc. select encode("abc", "UTF-8"); -
Exemplo 2: Codificar a string
abcno formatoUTF-16BE. Instrução de exemplo:-- Returns =00a=00b=00c. select encode("abc", "UTF-16BE"); -
Exemplo 3: Um parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select encode("abc", null);
-
FIND_IN_SET
-
Sintaxe
BIGINT FIND_IN_SET(STRING <str1>, STRING <str2>[, STRING <delimiter>]) -
Descrição
Encontra a posição da string str1 na string str2 separada por delimiter, contando a partir de 1.
-
Parâmetros
Parâmetro
Obrigatório
Descrição
str1
Sim
Tipo STRING. A string a ser pesquisada.
str2
Sim
Tipo STRING. A string separada por delimiter.
delimiter
Não
Constante STRING. O padrão é a vírgula (
,). O delimitador pode ser um único caractere ou uma string. -
Valor de retorno
Retorna um tipo BIGINT. O valor de retorno segue estas regras:
Se str2 não contiver str1 ou str1 contiver delimiter, retorna 0.
Se str1 ou str2 for
NULL, retornaNULL.
-
Exemplos
-
Exemplo 1: Encontrar a posição da string
abna stringabc,hello,ab,c, que é separada por vírgulas (,). Instrução de exemplo:SELECT FIND_IN_SET('ab', 'abc,hello,ab,c') AS pos;Retorno:
+------------+ | pos | +------------+ | 3 | +------------+ -
Exemplo 2: Encontrar a posição da string
hina stringabc,hello,ab,cseparada por vírgulas (,). Instrução de exemplo:SELECT FIND_IN_SET('hi', 'abc,hello,ab,c') AS pos;Retorno:
+------------+ | pos | +------------+ | 0 | +------------+ -
Exemplo 3: Encontrar a posição da string
abna stringabc_hello_ab_cdelimitada por sublinhado (_). Instrução de exemplo:SELECT FIND_IN_SET('ab', 'abc_hello_ab_c', '_') AS pos;Retorno:
+------------+ | pos | +------------+ | 3 | +------------+ -
Exemplo 4: O parâmetro de entrada
str1oustr2éNULL. Instrução de exemplo:SELECT FIND_IN_SET(null, 'abc,hello,ab,c') AS pos;Retorno:
+------------+ | pos | +------------+ | NULL | +------------+
-
FORMAT_NUMBER
-
Sintaxe
STRING FORMAT_NUMBER(DOUBLE|BIGINT|INT|SMALLINT|TINYINT|FLOAT|DECIMAL|STRING <expr1>, INT <expr2>) -
Descrição
Converte expr1 em uma string formatada de acordo com expr2.
Parâmetros
expr1: obrigatório. Um valor do tipo FLOAT, DOUBLE ou DECIMAL. Este parâmetro especifica a expressão que você deseja formatar.
expr2: obrigatório. Um valor do tipo INT. Valores válidos: 0 a 340. Este parâmetro especifica o número de casas decimais que você deseja reter. Este parâmetro também pode ser expresso em um formato semelhante a
#,###,###.##. O número de casas decimais retornadas varia com base no valor deste parâmetro.-
Valor de retorno
Retorna um valor do tipo STRING. O valor de retorno varia com base nas seguintes regras:
Se o valor de
expr2for maior que 0 e menor ou igual a 340, retorna um valor arredondado para o número especificado de casas decimais.Se o valor de
expr2for 0, o valor de retorno conterá apenas a parte inteira e não conterá o ponto decimal ou a parte decimal.Se o valor de
expr2for menor que 0 ougreater than 340, a função retorna um erro.Se expr1 ou expr2 estiver vazio ou definido como nulo, retorna nulo.
-
Exemplos
-
Exemplo 1: Formatar um número conforme especificado. Instruções de exemplo:
-- Returns 5.230. SELECT FORMAT_NUMBER(5.230134523424545456,3); -- Returns 12,332.123. SELECT FORMAT_NUMBER(12332.123456, '#,###,###,###.###'); -
Exemplo 2: Um parâmetro de entrada está vazio ou é NULL. Instruções de exemplo:
-- Returns NULL. SELECT FORMAT_NUMBER('',3); -- Returns NULL. SELECT FORMAT_NUMBER(null,3);
-
FROM_CHARSET
-
Sintaxe
STRING FROM_CHARSET(binary <source>, string <source_charset>, [string <mode>]) -
Descrição
A função FROM_CHARSET converte dados binários codificados em formatos diferentes de UTF-8 em uma string UTF-8 para cálculos subsequentes.
-
Parâmetros
source: obrigatório. Um valor do tipo BINARY. Este parâmetro especifica os dados binários a serem convertidos.
source_charset: obrigatório. Um valor do tipo STRING. Este parâmetro especifica o formato de codificação original dos dados binários especificados por source. Valores válidos: UTF-8, UTF-16, UTF-16LE, UTF-16BE, ISO-8859-1, US-ASCII, GB2312, GBK e GB18030.
-
mode: opcional. Um valor do tipo STRING. Este parâmetro especifica o modo de processamento caso um caractere não possa ser convertido quando a função FROM_CHARSET converte os dados binários especificados por source em uma string no formato de codificação definido. Valores válidos:
NONE: relata um erro. Não executa nenhum processamento. Este é o valor padrão.
TRANSLIT: substitui o caractere por um caractere semelhante no formato de codificação especificado.
IGNORE: ignora o erro e continua a execução do comando.
-
Valor de retorno
Retorna um valor do tipo STRING codificado em UTF-8. Quando os parâmetros são NULL ou strings vazias, o valor de retorno segue estas regras:
Se qualquer parâmetro de entrada for NULL, retorna NULL.
Se qualquer parâmetro de entrada for uma string vazia, retorna um erro.
-
Exemplos
-
Exemplo 1: Converte dados binários codificados em UTF-8 em uma string codificada em UTF-8.
SELECT FROM_CHARSET(unhex('e58aa0e6b2b9e9949fe696a4e68bb70a'),'UTF-8', 'TRANSLIT'); -
Exemplo 2: Converte dados binários codificados em GBK em uma string codificada em UTF-8.
SELECT FROM_CHARSET(unhex('b9feb9febac3a4ce'), 'GBK'); -
Exemplo 3: Se um parâmetro de entrada for nulo, retorna null.
SELECT FROM_CHARSET(unhex('b9feb9febac3a4ce'), null);
-
FROM_JSON
-
Sintaxe
from_json(<jsonStr>, <schema>) -
Descrição
Retorna dados do tipo ARRAY, MAP ou STRUCT com base na string JSON jsonStr e no formato de saída schema.
-
Parâmetros
jsonStr: obrigatório. A string JSON inserida.
-
schema: obrigatório. O schema da string JSON. O valor deste parâmetro deve estar no mesmo formato da instrução para criação de uma tabela, como
array<bigint>,map<string, array<string>>oustruct<a:int, b:double,.NotaAs chaves em uma struct diferenciam maiúsculas de minúsculas. Você também pode especificar uma struct no formato
a BIGINT, b DOUBLE, que é equivalente aSTRUCT<a:BIGINT, b:DOUBLE>.A tabela a seguir descreve os mapeamentos entre os tipos de dados JSON e os tipos de dados do MaxCompute.
Tipo de dados JSON
Tipo de dados do MaxCompute
OBJECT
STRUCT, MAP e STRING
ARRAY
ARRAY e STRING
NUMBER
TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, DECIMAL e STRING
BOOLEAN
BOOLEAN e STRING
STRING
STRING, CHAR, VARCHAR, BINARY, DATE e DATETIME
NULL
Todos os tipos
NotaAs strings JSON dos tipos OBJECT e ARRAY são analisadas ao máximo. Se o tipo de dados da string JSON não estiver mapeado para nenhum tipo de dados do MaxCompute, a string JSON será omitida. Para facilitar o uso, todos os tipos de dados JSON podem ser convertidos no tipo de dados STRING suportado pelo MaxCompute. Ao converter uma string JSON do tipo NUMBER em um valor do tipo FLOAT, DOUBLE ou DECIMAL, a precisão do valor não pode ser garantida. Recomendamos converter a string JSON em um valor do tipo STRING e, em seguida, converter o valor obtido em um valor do tipo FLOAT, DOUBLE ou DECIMAL.
-
Valor de retorno
Retorna um valor do tipo ARRAY, MAP ou STRUCT.
-
Exemplos
-
Exemplo 1: Converte uma string JSON específica em um valor de um tipo de dados específico. Instrução de exemplo:
-- 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>'); -
Exemplo 2: Usa as funções
map_keysefrom_jsonpara obter todas as chaves em uma string JSON. Você também pode usar JSON_KEYS para a mesma finalidade. Instrução de exemplo:-- The return value is ["a","b"]. select map_keys(from_json('{"a":1,"b":2}','map<string,string>'));
-
GET_JSON_OBJECT
-
Sintaxe
STRING GET_JSON_OBJECT(JSON|STRING <json>, STRING <json_path>) -- Example: Returns Alice. SELECT GET_JSON_OBJECT(JSON '{"name": "Alice", "age": 30}', '$.name'); -
Descrição
A função GET_JSON_OBJECT extrai uma string de uma string JSON ou de um valor do tipo de dados JSON com base em um caminho JSON especificado, json_path.
-
Notas de uso
A função
GET_JSON_OBJECTnão suporta sintaxe de expressão regular em caminhos JSON.A sintaxe de caminho JSON para o novo JSON data type difere da especificação original. Isso pode causar problemas de compatibilidade.
Se uma consulta contiver várias funções GET_JSON_OBJECT que processam os mesmos dados JSON, a função analisa a mesma string JSON repetidamente. Isso pode afetar negativamente o desempenho e aumentar os custos. Para evitar isso, use
GET_JSON_OBJECTcom uma função de valor de tabela definida pelo usuário (UDTF) para transformar dados de log JSON.
-
Parâmetros
-
json: obrigatório. Os dados JSON a serem processados. Este parâmetro suporta dois tipos de entrada: JSON e STRING.
Tipo JSON: Um valor do tipo de dados JSON. O valor deve estar no formato
{"Key":"Value", "Key":"Value",...}, comoJSON '{"name": "Alice", "age": 30}'.-
Tipo STRING: Se a entrada for uma STRING, ela deve atender aos seguintes requisitos de formato:
A string deve estar no formato
'{"Key":"Value", "Key":"Value",...}', como'{"name": "Alice", "age": 30}'.Aspas duplas (") devem ser escapadas com duas barras invertidas (\\).
Aspas simples (') devem ser escapadas com uma barra invertida (\).
-
json_path: obrigatório. Uma STRING que especifica a expressão de caminho JSON usada para extrair dados. O caminho deve começar com o caractere
$, como$.aliyun.test[0].demo. A expressão de caminho usa os seguintes caracteres:$: Indica o nó raiz.-
.ou['']: Indica um nó filho. Usado para analisar objetos JSON, como$.store.book. Se uma chave JSON contiver um ponto (.), use['']em seu lugar.A extração de dados com
['']só é suportada mediante a execução da instruçãoSET odps.sql.udf.getjsonobj.new=true;. []:[number]indica um subscrito de array. O subscrito começa em 0.*: Um caractere curinga para[]. Retorna o array inteiro. O asterisco (*) não pode ser escapado.
-
-
Valor de retorno
Retorna um valor do tipo STRING. Este valor corresponde aos dados extraídos do caminho especificado. A função segue estas regras para o seu valor de retorno:
Se json for válido e json_path existir, retorna a string correspondente.
Se json estiver vazio ou tiver um formato inválido, retorna NULL.
Se json_path contiver
[*], o valor de retorno não estará no formato de array. Para forçar o valor de retorno a estar em um formato de array unificado, execute a instruçãoSET odps.sql.force.getjsonobj.array.format=true;.Se json_path for inválido, retorna NULL.
Comportamento de retorno
-
Controle o comportamento de retorno da função definindo o sinalizador no nível do projeto ou no nível da sessão com o seguinte comando: SET odps.sql.udf.getjsonobj.new=true/false;.
Os dois comportamentos de retorno correspondentes às diferentes configurações de sinalizador são os seguintes:
ImportanteRecomendamos usar a configuração
SET odps.sql.udf.getjsonobj.new=true;. Essa configuração fornece um comportamento de função mais padrão, simplifica o processamento de dados e melhora o desempenho. Se o seu projeto MaxCompute tiver jobs existentes que dependem do comportamento de escape de caracteres reservados JSON, recomendamos continuar usando o comportamento original. Isso evita erros ou problemas de precisão que podem ocorrer caso você mude para o novo comportamento sem verificação.Configurações de parâmetros
SET odps.sql.udf.getjsonobj.new=true;SET odps.sql.udf.getjsonobj.new=false;Comportamento de retorno
Retorna a string original sem modificações.
Retorna a string com caracteres reservados JSON escapados.
O valor de retorno é uma string JSON que pode ser analisada diretamente. Não é necessário usar funções, como
REPLACEouREGEXP_REPLACE, para substituir barras invertidas.Caracteres reservados JSON, como quebras de linha (\n) e aspas ("), são retornados como as strings
'\n'e'\"'.Análise de chaves duplicadas
Um objeto JSON pode conter chaves duplicadas, que são analisadas com sucesso.
-- Returns 1. SELECT GET_JSON_OBJECT('{"a":"1","a":"2"}', '$.a');Um objeto JSON não pode conter chaves duplicadas. Caso contenha, a análise pode falhar.
-- Returns NULL. SELECT GET_JSON_OBJECT('{"a":"1","a":"2"}', '$.a');Ordem de classificação de saída
A saída é classificada na mesma ordem da string JSON original.
-- Returns {"b":"1","a":"2"}. SELECT GET_JSON_OBJECT('{"b":{"b":"1","a":"2"},"a":"2"}', '$.b');A saída é classificada em ordem alfabética.
-- Returns {"a":"2","b":"1"}. SELECT GET_JSON_OBJECT('{"b":{"b":"1","a":"2"},"a":"2"}', '$.b'); Se o modo de compatibilidade com Hive estiver ativado através da execução do comando
SET odps.sql.hive.compatible=true;, a funçãoGET_JSON_OBJECTpreserva as strings originais em seu valor de retorno.Para projetos MaxCompute criados em ou após 21 de janeiro de 2021, o comportamento de retorno padrão da função
GET_JSON_OBJECTé preservar as strings originais.Para projetos MaxCompute criados antes de 21 de janeiro de 2021, o comportamento de retorno padrão da função
GET_JSON_OBJECTé escapar caracteres reservados JSON.-
Use o exemplo a seguir para determinar qual comportamento a função
GET_JSON_OBJECTutiliza no seu projeto MaxCompute. Para isso, execute o seguinte 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 alterar o comportamento de retorno padrão da função
GET_JSON_OBJECTno seu projeto para a preservação de strings originais, abra um ticket. Isso evita a necessidade de definir a propriedade no nível da sessão para cada sessão.
-
Exemplos
JSON input parameter
Exemplo 1: Obter valores para chaves específicas de dados 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');Exemplo 2: Um json_path inválido retorna NULL.
-- Returns NULL. SELECT GET_JSON_OBJECT(JSON '{"a":1, "b":2}', '$invalid_json_path');STRING input parameter
Exemplo 1: Extrair informações do 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;Exemplo 2: Extrair informações de dados de array 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]');Exemplo 3: Extrair informações de dados JSON com um ponto (.) na chave
-- 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;Exemplo 4: Usar
['']para chaves que contêm um ponto (.)SET odps.sql.udf.getjsonobj.new=true; -- Returns 1. SELECT GET_JSON_OBJECT('{"a.1":"1","a":"2"}', '$[\'a.1\']');Exemplo 5: Entrada JSON vazia ou invá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]');Exemplo 6: Strings JSON escapadas
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');Exemplo 7: Suporte a emojis
-- Returns the emoji symbol. SELECT GET_JSON_OBJECT('{"a":"<Emoji symbol>"}', '$.a');Nota: O DataWorks não suporta a inserção direta de caracteres de emoji. Use uma ferramenta, como o Data Integration, para gravar as strings codificadas que correspondem aos caracteres de emoji no MaxCompute. Em seguida, use a função
GET_JSON_OBJECTpara processá-los.
INITCAP
-
Sintaxe
string initcap(<str>) -
Descrição
Converte str para o formato de título, onde as palavras são separadas por espaços, com a primeira letra de cada palavra em maiúscula e o restante em minúscula.
-
Parâmetros
str: obrigatório. Tipo STRING. String de entrada.
-
Valor de retorno
Retorna uma string com a primeira letra de cada palavra em maiúscula e o restante em minúscula.
-
Exemplo
-- Returns Odps Sql. SELECT initcap("oDps sql");
INSTR
-
Sintaxe
bigint instr(string <str1>, string <str2>[, bigint <start_position>[, bigint <nth_appearance>]]) -
Descrição
Encontra a posição da substring str2 na string str1.
-
Parâmetros
str1: obrigatório. Tipo STRING. String de destino a ser pesquisada. Se a entrada for BIGINT, DOUBLE, DECIMAL ou DATETIME, é implicitamente convertida para STRING. Outros tipos retornam um erro.
str2: obrigatório. Tipo STRING. Substring a ser correspondida. Se a entrada for BIGINT, DOUBLE, DECIMAL ou DATETIME, é implicitamente convertida para STRING. Outros tipos retornam um erro.
start_position: opcional. Um valor do tipo BIGINT. Um erro é retornado para outros tipos de dados. Este parâmetro especifica a posição do caractere em str1 a partir do qual a pesquisa começa. A posição inicial padrão é o primeiro caractere, que é a posição 1. Se start_position for um valor negativo, a pesquisa começa a contar de trás para frente a partir do final da string, onde o último caractere está na posição -1, o penúltimo em -2, e assim por diante.
nth_appearance: opcional. Um valor do tipo BIGINT que deve ser maior que 0. Este parâmetro especifica a posição da n-ésima (nth_appearance) ocorrência de str2 em str1. Se nth_appearance for de outro tipo de dados ou for menor ou igual a 0, um erro será retornado.
-
Valor de retorno
Retorna um valor do tipo BIGINT. O valor de retorno segue estas regras:
Se str1 não contiver str2, retorna 0.
Se str2 estiver vazia, a correspondência é sempre bem-sucedida. Exemplo:
select instr('abc','');retorna 1.Se str1, str2, start_position ou nth_appearance for NULL, retorna NULL.
-
Exemplos
-
Exemplo 1: Encontrar a posição do caractere
ena stringTech on the net. Instrução de exemplo:-- Returns 2. select instr('Tech on the net', 'e'); -
Exemplo 2: Encontrar a posição da substring
onna stringTech on the net. Instrução de exemplo:-- Returns 6. select instr('Tech on the net', 'on'); -
Exemplo 3: Encontrar a posição da segunda ocorrência do caractere
ena stringTech on the neta partir do terceiro caractere. Instrução de exemplo:-- Returns 14. select instr('Tech on the net', 'e', 3, 2); -
Exemplo 4: Um parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select instr('Tech on the net', null);
-
IS_ENCODING
-
Sintaxe
boolean is_encoding(string <str>, string <from_encoding>, string <to_encoding>) -
Descrição
Determina se a string de entrada str pode ser convertida do conjunto de caracteres from_encoding para to_encoding. Também é usada para detectar texto corrompido — normalmente definindo from_encoding como UTF-8 e to_encoding como GBK.
-
Parâmetros
str: obrigatório. Tipo STRING. Strings vazias são consideradas válidas para qualquer conjunto de caracteres.
from_encoding, to_encoding: obrigatório. Tipo STRING. Conjuntos de caracteres de origem e de destino.
-
Valor de retorno
Retorna um valor do tipo BOOLEAN. O valor de retorno segue estas regras:
Se str for convertida com sucesso, retorna True; caso contrário, False.
Se str, from_encoding ou to_encoding for NULL, retorna NULL.
JSON_TUPLE
-
Sintaxe
string json_tuple(string <json>, string <key1>, string <key2>,...) -
Descrição
Extrai strings de uma string JSON padrão com base em um conjunto de chaves de entrada, como
(key1,key2,...). -
Parâmetros
json: obrigatório. Um valor do tipo STRING. Este parâmetro especifica uma string JSON padrão.
key: obrigatório. Um valor do tipo STRING. Este parâmetro é usado para descrever o
pathde um objeto JSON na string JSON. O valor não pode começar com um cifrão ($). Você pode inserir várias chaves de uma vez. O MaxCompute analisa objetos JSON usando.ou['']. Se uma chave em um objeto JSON incluir um ponto(.),['']pode ser usado.
-
Valor de retorno
Retorna um valor do tipo STRING.
NotaSe json estiver vazio ou for inválido, retorna null.
Se key estiver vazia, for inválida ou não existir na string JSON, retorna null.
Se json for válido e key existir, retorna a string relacionada.
Esta função pode analisar dados JSON que contêm caracteres chineses.
Esta função pode analisar dados JSON aninhados.
Esta função pode analisar dados JSON que contêm arrays aninhados.
A ação de análise é equivalente à execução de GET_JSON_OBJECT junto com
set odps.sql.udf.getjsonobj.new=true;. Para obter vários objetos de uma string JSON, é necessário chamar a função GET_JSON_OBJECT várias vezes. Como resultado, a string JSON é analisada múltiplas vezes. A função JSON_TUPLE permite inserir várias chaves de uma vez e a string JSON é analisada apenas uma vez. JSON_TUPLE é mais eficiente que GET_JSON_OBJECT.JSON_TUPLE é uma função de valor de tabela definida pelo usuário (UDTF). Se você quiser selecionar algumas colunas de uma tabela, use JSON_TUPLE junto com a cláusula LATERAL VIEW.
KEYVALUE
-
Sintaxe
keyvalue(string <str>,[string <split1>,string <split2>,] string <key>) keyvalue(string <str>,string <key>) -
Descrição
Divide a string str em pares de chave-valor com o uso de split1, separa os pares por meio de split2 e retorna o valor correspondente à key.
-
Parâmetros
str: obrigatório. Tipo STRING. String a ser dividida.
split1, split2: opcional. Tipo STRING. Strings delimitadoras para a divisão. Se não forem especificadas, o valor padrão de split1 é
";"e o de split2 é":". Caso uma substring dividida por split1 contenha múltiplos split2, o resultado será indefinido.key: obrigatório. Tipo STRING. Após a divisão por split1 e split2, retorna o valor para key.
-
Valor de retorno
Retorna o tipo STRING. O valor de retorno segue estas regras:
Se split1 ou split2 for NULL, retorna NULL.
Se str ou key for NULL, ou se não houver uma key correspondente, retorna NULL.
Se houver correspondência em múltiplos pares de chave-valor, retorna o valor da primeira key correspondente.
-
Exemplos
-
Exemplo 1: Divida a string
0:1/;1:2em pares de chave-valor e retorne o valor da chave1. Instrução de exemplo:-- Returns 2. select keyvalue('0:1/;1:2', 1);Os parâmetros split1 e split2 não foram especificados. O valor padrão de split1 é o ponto e vírgula (
";") e o valor padrão de split2 é os dois pontos (":").Após a divisão por split1, os pares de chave-valor são
0:1/,1:2. Após a divisão por split2:0 1/ 1 2Retorna o valor 2 para a chave 1.
-
Exemplo 2: Divida a string
“\;decreaseStore:1\;xcard:1\;isB2C:1\;tf:21910\;cart:1\;shipping:2\;pf:0\;market:shoes\;instPayAmount:0\;”usando“\;”como split1 e":"como split2 e, em seguida, retorne o valor para a chavetf. Instrução de exemplo:-- Returns 21910. select keyvalue("\;decreaseStore:1\;xcard:1\;isB2C:1\;tf:21910\;cart:1\;shipping:2\;pf:0\;market:shoes\;instPayAmount:0\;","\;",":","tf");A divisão da string
"\;decreaseStore:1\;xcard:1\;isB2C:1\;tf:21910\;cart:1\;shipping:2\;pf:0\;market:shoes\;instPayAmount:0\;"com o delimitador"\;"gera os seguintes pares de chave-valor.decreaseStore:1,xcard:1,isB2C:1,tf:21910,cart:1,shipping:2,pf:0,market:shoes,instPayAmount:0O resultado da divisão por
":"é o seguinte.decreaseStore 1 xcard 1 isB2C 1 tf 21910 cart 1 shipping 2 pf 0 market shoes instPayAmount 0Retorna o valor 21910 para a chave
tf.
-
KEYVALUE_TUPLE
-
Sintaxe
KEYVALUE_TUPLE(str, split1, split2, key1, key2, ..., keyN) -
Descrição
Divide a string str em pares de chave-valor usando split1, separa os pares usando split2 e retorna valores para múltiplas ocorrências de key.
-
Parâmetros
str: obrigatório. Tipo STRING. String a ser dividida.
split1, split2: obrigatório. Tipo STRING. Strings delimitadoras para a divisão. Caso uma substring dividida por split1 contenha múltiplos split2, o resultado será indefinido.
key: obrigatório. Tipo STRING. Após a divisão por split1 e split2, retorna o valor para key.
-
Valor de retorno
Retorna o tipo STRING. O valor de retorno segue estas regras:
Se split1 ou split2 for NULL, retorna NULL.
Se str ou key for NULL, ou se não houver uma key correspondente, retorna NULL.
-
Exemplo
-- 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;O resultado é o seguinte.
+------------+------------+------------+------------+ | user_id | age | genda | address | +------------+------------+------------+------------+ | 1 | 18 | f | abc | | 2 | 20 | m | bcd | +------------+------------+------------+------------+
LENGTH
-
Sintaxe
bigint length(string <str>) -
Descrição
Calcula o comprimento da string str.
-
Parâmetros
str: obrigatório. Tipo STRING. Se a entrada for BIGINT, DOUBLE, DECIMAL ou DATETIME, será convertida implicitamente para STRING.
-
Valor de retorno
Retorna o tipo BIGINT. O valor de retorno segue estas regras:
Se str não for STRING, BIGINT, DOUBLE, DECIMAL ou DATETIME, retorna um erro.
Se str for NULL, retorna NULL.
Se str não estiver codificada em UTF-8, retorna -1.
-
Exemplos
-
Exemplo 1: Calcule o comprimento da string
Tech on the net. Instrução de exemplo:-- Returns 15. select length('Tech on the net'); -
Exemplo 2: O parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select length(null);
-
LENGTHB
-
Sintaxe
bigint lengthb(string <str>) -
Descrição
Calcula o comprimento em bytes da string str.
-
Parâmetros
str: obrigatório. Tipo STRING. Se a entrada for BIGINT, DOUBLE, DECIMAL ou DATETIME, será convertida implicitamente para STRING.
-
Valor de retorno
Retorna o tipo BIGINT. O valor de retorno segue estas regras:
Se str não for STRING, BIGINT, DOUBLE, DECIMAL ou DATETIME, retorna um erro.
Se str for NULL, retorna NULL.
-
Exemplos
-
Exemplo 1: Calcule o comprimento em bytes da string
Tech on the net. Instrução de exemplo:-- Returns 15. select lengthb('Tech on the net'); -
Exemplo 2: O parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select lengthb(null);
-
LOCATE
-
Sintaxe
bigint locate(string <substr>, string <str>[, bigint <start_pos>]) -
Descrição
Localiza a posição da substring substr na string str. Especifique a posição inicial (a contagem começa em 1) com start_pos.
-
Parâmetros
substr: obrigatório. Tipo STRING. Substring a ser localizada.
str: obrigatório. Tipo STRING. String a ser pesquisada.
start_pos: opcional. Tipo BIGINT. Posição inicial para a pesquisa.
-
Valor de retorno
Retorna o tipo BIGINT. O valor de retorno segue estas regras:
Se str não contiver substr, retorna 0.
Se str ou substr for NULL, retorna NULL.
Se start_pos for NULL, retorna 0.
-
Exemplos
-
Exemplo 1: Localize a posição da string
abna stringabchelloabc. Instrução de exemplo:-- Returns 1. select locate('ab', 'abchelloabc'); -
Exemplo 2: Localize a posição da string
hina stringabchelloabc. Instrução de exemplo:-- Returns 0. select locate('hi', 'abc,hello,ab,c'); -
Exemplo 3: O parâmetro start_pos é NULL. Instrução de exemplo:
-- Returns 0. select locate('ab', 'abhelloabc', null);
-
LPAD
-
Sintaxe
string lpad(string <str1>, int <length>, string <str2>) -
Descrição
Preenche a string str1 à esquerda até atingir length caracteres, usando a string str2. Esta função é uma extensão no MaxCompute V2.0.
-
Parâmetros
str1: obrigatório. Tipo STRING. String a ser preenchida à esquerda.
length: obrigatório. Tipo INT. Número de caracteres para o preenchimento à esquerda.
str2: obrigatório. String de preenchimento.
-
Valor de retorno
Retorna o tipo STRING. O valor de retorno segue estas regras:
Se length for menor que o comprimento de str1, retorna os length caracteres mais à esquerda de str1.
Se length for 0, retorna uma string vazia.
Se não houver parâmetros de entrada ou se qualquer parâmetro de entrada for NULL, retorna NULL.
-
Exemplos
-
Exemplo 1: Use a string
12para preencher a stringabcdefghà esquerda até 10 caracteres. O comando de exemplo é o seguinte.-- Returns 12abcdefgh. select lpad('abcdefgh', 10, '12'); -
Exemplo 2: Use a string
12para preencher a stringabcdefghà esquerda até um comprimento de 5 caracteres. O comando de exemplo é o seguinte.-- Returns abcde. select lpad('abcdefgh', 5, '12'); -
Exemplo 3: O parâmetro length é 0. Instrução de exemplo:
-- Returns empty string. select lpad('abcdefgh' ,0, '12'); -
Exemplo 4: Um dos parâmetros de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select lpad(null ,0, '12');
-
LTRIM
-
Sintaxe
string ltrim(string <str>[, <trimChars>]) string trim(leading [<trimChars>] from <str>) -
Descrição
Remove caracteres da extremidade esquerda de str:
Se trimChars não for especificado, remove os espaços à esquerda por padrão.
Ao especificar trimChars, a função trata os caracteres em trimChars como um conjunto e remove da extremidade esquerda de str a maior substring possível composta inteiramente por caracteres do conjunto trimChars.
-
Parâmetros
str: obrigatório. Tipo STRING. String a ser aparada. Se a entrada for BIGINT, DECIMAL, DOUBLE ou DATETIME, será convertida implicitamente para STRING.
trimChars: opcional. Tipo STRING. Caracteres a serem removidos.
-
Valor de retorno
Retorna o tipo STRING. O valor de retorno segue estas regras:
Se str não for STRING, BIGINT, DOUBLE, DECIMAL ou DATETIME, retorna um erro.
Se str ou trimChars for NULL, retorna NULL.
-
Exemplos
-
Exemplo 1: Remova os espaços à esquerda da string
yxTxyomxx. Instruções de exemplo:-- Returns yxTxyomxx. select ltrim(' yxTxyomxx '); -- Equivalent to: select trim(leading from ' yxTxyomxx '); -
Exemplo 2: Remova todos os caracteres à esquerda da string
yxTxyomxxque estejam no conjuntoxy.-- Returns Txyomxx. Any leading x or y is removed. select ltrim('yxTxyomxx', 'xy'); -- Equivalent to: select trim(leading 'xy' from 'yxTxyomxx'); -
Exemplo 3: O parâmetro de entrada é NULL. Instruções de exemplo:
-- Returns NULL. select ltrim(null); select ltrim('yxTxyomxx', null);
-
MASK_HASH
-
Sintaxe
mask_hash(<expr>) -
Descrição
Retorna um valor de hash calculado a partir da expressão de string expr. Valores de hash idênticos indicam valores de expressão idênticos.
-
Parâmetros
expr: obrigatório. Expressão de string para o cálculo do hash. Aceita os tipos STRING, CHAR, VARCHAR e BINARY.
-
Valor de retorno
Retorna um valor de hash de 64 bytes. Para expressões que não sejam strings, retorna
null(compatível com Hive). -
Exemplo
-- 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
-
Sintaxe
string md5(string <str>) -
Descrição
Calcula o hash MD5 da string str.
-
Parâmetros
str: obrigatório. Tipo STRING. Se a entrada for BIGINT, DOUBLE, DECIMAL ou DATETIME, será convertida implicitamente para STRING.
-
Valor de retorno
Retorna o tipo STRING. O valor de retorno segue estas regras:
Se str não for STRING, BIGINT, DOUBLE, DECIMAL ou DATETIME, retorna um erro.
Se str for NULL, retorna NULL.
-
Exemplos
-
Exemplo 1: Calcule o hash MD5 da string
Tech on the net. Instrução de exemplo:-- Returns ddc4c4796880633333d77a60fcda9af6. select md5('Tech on the net'); -
Exemplo 2: O parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select md5(null);
-
PARSE_URL
-
Sintaxe
string parse_url(string <url>, string <part>[, string <key>]) -
Descrição
Analisa a url e extrai as informações indicadas por part.
-
Parâmetros
url: obrigatório. Tipo STRING. Link da URL. URLs inválidas retornam um erro.
part: obrigatório. Tipo STRING. Valores válidos: HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, USERINFO (não diferencia maiúsculas de minúsculas).
key: opcional. Quando part for QUERY, retorna o valor para key.
-
Descrição do retorno
Retorna o tipo STRING. O valor de retorno segue estas regras:
Se url, part ou key for NULL, retorna NULL.
Se part for inválido, retorna um erro.
-
Exemplo
-- 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
-
Sintaxe
string parse_url_tuple(string <url>, string <key1>, string <key2>,...) -
Descrição
Analisa a url e extrai as strings definidas pelas chaves de entrada key1, key2, etc. É semelhante a PARSE_URL, mas extrai múltiplas chaves simultaneamente com melhor desempenho.
-
Parâmetros
url: obrigatório. Tipo STRING. Link da URL. URLs inválidas retornam um erro.
-
key1, key2: obrigatório. Tipo STRING. Chaves a serem extraídas. Valores válidos:
HOST: Endereço do host (domínio ou IP).
PATH: Caminho para o recurso de rede no servidor.
QUERY: String de consulta (conteúdo a ser consultado).
REF: indica o identificador de fragmento de uma URL, que é o conteúdo após o símbolo
#.PROTOCOL: Tipo de protocolo.
AUTHORITY: Domínio/IP do servidor, porta e informações de autenticação do usuário (nome de usuário, senha).
FILE: Caminho e conteúdo da consulta (PATH + QUERY).
USERINFO: Informações de autenticação do usuário.
QUERY:<KEY>: Valor para a chave especificada na string de consulta.
Não diferencia maiúsculas de minúsculas. Valores inválidos retornam um erro.
-
Descrição do retorno
Retorna o tipo STRING. Se url ou key for NULL, retorna um erro.
-
Exemplo
Extraia as strings para cada chave a partir de
file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose. Instrução de exemplo: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);Retorna:
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ | 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
-
Sintaxe
bigint regexp_count(string <source>, string <pattern>[, bigint <start_position>]) -
Descrição
Conta as substrings em source a partir de start_position que correspondem ao pattern definido.
-
Parâmetros
source: obrigatório. Tipo STRING. String a ser pesquisada. Outros tipos retornam um erro.
pattern: obrigatório. Constante STRING ou expressão regular. Padrão a ser correspondido. Para obter mais diretrizes sobre expressões regulares, consulte RLIKE string matching. Um pattern vazio ou inválido retorna um erro.
start_position: opcional. Uma constante do tipo BIGINT. O valor deste parâmetro deve ser maior que 0. Se o valor for de outro tipo de dado ou for menor ou igual a 0, um erro será retornado. Se não o especificar, o valor padrão é 1. Esse valor indica que a pesquisa começa a partir do primeiro caractere da string source.
-
Valor de retorno
Retorna o tipo BIGINT. O valor de retorno segue estas regras:
Se nenhuma correspondência for encontrada, retorna 0.
Se source, pattern ou start_position for NULL, retorna NULL.
-
Exemplos
-
Exemplo 1: Conte as substrings correspondentes em
abababca partir da posição definida. Instruções de exemplo:-- Returns 1. select regexp_count('abababc', 'a.c'); -- Returns 2. select regexp_count('abababc', '[[:alpha:]]{2}', 3); -
Exemplo 2: Um dos parâmetros de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select regexp_count('abababc', null); -
Exemplo 3: Conte as ocorrências de
:na string JSON{"account_id":123456789,"account_name":"allen","location":"hangzhou","bill":100}. Instrução de exemplo:-- Returns 4. select regexp_count('{"account_id":123456789,"account_name":"allen","location":"hangzhou","bill":100}',':');
-
REGEXP_EXTRACT
-
Sintaxe
string regexp_extract(string <source>, string <pattern>[, bigint <groupid>])NotaNas versões de tipos de dados compatíveis com Hive,
REGEXP_EXTRACTsegue a especificação de regex do Java. Nas versões de tipos de dados 1.0 e 2.0, segue a especificação do MaxCompute. -
Descrição
Divide a string source em grupos usando pattern e retorna a string do grupo groupid.
-
Parâmetros
source: obrigatório. Tipo STRING. A string a ser dividida.
pattern: obrigatório. Constante STRING ou expressão regular. O padrão a ser correspondido. Para obter mais diretrizes sobre expressões regulares, consulte RLIKE string matching.
groupid: opcional. Constante BIGINT, deve ser ≥0.
NotaOs dados são armazenados no formato UTF-8. Os caracteres chineses podem ser representados em hexadecimal no intervalo [\\x{4e00},\\x{9fa5}].
-
Valor de retorno
Retorna o tipo STRING. O valor de retorno segue estas regras:
Se pattern for uma string vazia ou se nenhum grupo for especificado em pattern, a função retorna um erro.
Se groupid não for do tipo BIGINT ou for menor que 0, a função retorna um erro. Se você não especificar esse parâmetro, o valor padrão será 1, o que indica que a substring do primeiro grupo é retornada. Se você definir groupid como 0, a função retorna a substring que corresponde a todo o pattern.
Se source, pattern ou groupid for NULL, retorna NULL.
REGEXP_EXTRACT_ALL
-
Sintaxe
array<T> regexp_extract_all(string <source>, string <pattern>[,bigint <group_id>]) -
Descrição
Encontra todas as substrings que correspondem a um padrão de expressão regular em uma string e as retorna como um array.
-
Parâmetros
source: obrigatório. Tipo STRING. A string a ser analisada.
pattern: obrigatório. Tipo STRING. O padrão a ser correspondido. Pode ser uma constante STRING ou uma expressão regular. Para obter mais diretrizes sobre expressões regulares, consulte RLIKE string matching.
group_id: opcional. Um valor BIGINT. Este parâmetro especifica o ID do grupo usado para corresponder ao padrão. O valor deste parâmetro deve ser maior ou igual a
0. Se você não especificar este parâmetro, o grupo com group_id igual a1será usado para corresponder ao padrão. Se você definir este parâmetro como0, o pattern será correspondido como um todo.
-
Valor de retorno
Um valor ARRAY é retornado. Se você especificar group_id, a função retorna um array contendo todos os resultados correspondentes para o group_id especificado. Se você não especificar group_id, a função retorna um array contendo todos os resultados correspondentes para o group_id
1. -
Exemplo
-
Se você não especificar group_id, o comportamento padrão é retornar os resultados que correspondem ao primeiro group_id.
SELECT regexp_extract_all('100-200, 300-400', '(\\d+)-(\\d+)');Retorna:
+------------+ | _c0 | +------------+ | [100,300] | +------------+ -
Se você definir o valor de group_id como
2, a função retorna o resultado correspondente ao segundo group_id.SELECT regexp_extract_all('100-200, 300-400', '(\\d+)-(\\d+)',2);O resultado é o seguinte.
+------------+ | _c0 | +------------+ | [200,400] | +------------+
-
REGEXP_INSTR
-
Sintaxe
bigint regexp_instr(string <source>, string <pattern>[,bigint <start_position>[, bigint <occurrence>[, bigint <return_option>]]]) -
Descrição
Retorna a posição inicial ou final da occurrence especificada de uma substring que corresponde a pattern em source, começando a partir de start_position.
-
Parâmetros
source: obrigatório. A string de origem. O tipo de dados deve ser STRING.
pattern: obrigatório. O padrão a ser correspondido. O valor pode ser uma constante STRING ou uma expressão regular. Para obter mais informações sobre expressões regulares, consulte RLIKE string matching. Um pattern vazio retorna um erro.
start_position: opcional. A posição a partir da qual a pesquisa começa. O valor deve ser uma constante BIGINT. O valor padrão é 1.
occurrence: opcional. A ocorrência da correspondência a ser encontrada. O valor deve ser uma constante BIGINT. O valor padrão é 1, o que indica a primeira correspondência.
return_option: opcional. A posição a ser retornada. O valor deve ser uma constante BIGINT. Valores válidos: 0 especifica a posição inicial e 1 especifica a posição final. O valor padrão é 0. Se você especificar um valor inválido, a função retorna um erro.
-
Valor de retorno
O valor de retorno é do tipo BIGINT. O parâmetro return_option especifica se a função deve retornar a posição inicial ou final da substring correspondente em source. O valor de retorno é determinado pelas seguintes regras:
Se pattern estiver vazio, a função retorna um erro.
Se o valor de start_position ou occurrence não for uma constante BIGINT ou for menor ou igual a 0, a função retorna um erro.
Se o valor de source, pattern, start_position, occurrence ou return_option for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Retorne a posição inicial da
2ª ocorrência de uma substring que corresponde ao[[:alpha:]]{1}na stringi love www.taobao.com, começando a partir da posição3. Instrução de exemplo:-- Returns 14. select regexp_instr('i love www.taobao.com', 'o[[:alpha:]]{1}', 3, 2); -
Exemplo 2: Retorne a posição final da ocorrência
secondde uma substring que corresponde ao[[:alpha:]]{1}na stringi love www.taobao.com. A pesquisa começa a partir do caracterethird. Instrução de exemplo:-- Returns 16. select regexp_instr('i love www.taobao.com', 'o[[:alpha:]]{1}', 3, 2, 1); -
Exemplo 3: Um parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select regexp_instr('i love www.taobao.com', null, 3, 2);
-
REGEXP_REPLACE
-
Sintaxe
string regexp_replace(string <source>, string <pattern>, string <replace_string>[, bigint <occurrence>])NotaPara tipos de dados compatíveis com Hive, a função
REGEXP_REPLACEsegue a especificação de expressão regular do Java. Para os tipos de dados 1.0 e 2.0, segue a especificação do MaxCompute. -
Descrição
Substitui a substring que corresponde ao pattern na posição especificada por occurrence na string source por replace_string e retorna o resultado.
-
Parâmetros
source: obrigatório. Um valor do tipo STRING. Esta é a string de origem a ser modificada.
pattern: obrigatório. Uma constante STRING ou uma expressão regular. Este é o padrão a ser correspondido. Para obter mais informações sobre as regras de expressão regular, consulte RLIKE string matching. Se o pattern estiver vazio, a função retorna um erro.
-
replace_string: obrigatório. Um valor do tipo STRING. Esta é a string que substitui a substring que corresponde ao pattern.
NotaSe replace_string for uma string vazia, a função exclui a substring que corresponde ao pattern.
O replace_string pode conter referências inversas no formato \n para inserir a substring que corresponde ao enésimo grupo de captura no pattern. O valor de n pode ser um número inteiro de 1 a 9. \0 insere toda a substring que corresponde ao pattern. Você deve escapar as barras invertidas, como \\1, ou usar uma string bruta, como R'(\1)'.
occurrence: opcional. Uma constante do tipo BIGINT, que deve ser maior ou igual a 0. O valor deste parâmetro indica que a string que corresponde ao padrão especificado na enésima ocorrência especificada por occurrence é substituída por replace_string. Se você definir este parâmetro como 0, todas as substrings que correspondem ao padrão especificado serão substituídas. Se for de outro tipo de dados ou menor que 0, a função retorna um erro. Valor padrão: 0.
-
Valor de retorno
Um valor do tipo STRING é retornado. O valor de retorno é determinado pelas seguintes regras:
Se você referenciar um grupo que não existe, o resultado é indefinido.
Se replace_string for NULL e uma correspondência para o pattern for encontrada, a função retorna NULL.
Se replace_string for NULL e não houver correspondência para o pattern, a função retorna a string original.
Se source, pattern ou occurrence for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Substitua substrings com base em regras especificadas.
-- 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); -
Exemplo 2: Substitua todas as correspondências do padrão
([[:digit:]]{3})\\.([[:digit:]]{3})\\.([[:digit:]]{4})na string123.456.7890por(\\1)\\2-\\3. Instrução de exemplo:-- Returns (123)456-7890. select regexp_replace('123.456.7890', '([[:digit:]]{3})\\.([[:digit:]]{3})\\.([[:digit:]]{4})', '(\\1)\\2-\\3', 0); -
Exemplo 3: Substitua substrings que correspondem a um padrão na string
abcdcom base em regras especificadas. Instruções de exemplo:-- 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); -
Exemplo 4: A tabela url_set contém uma coluna URL onde os valores estão no formato
www.simple@xxx.com. A partexxxé exclusiva para cada linha. Este exemplo substitui todos os caracteres apóswww. Instrução de exemplo:-- Returns wwwtest. select regexp_replace(url,'(www)(.*)','wwwtest',0) from url_set; -
Exemplo 5: Um parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select regexp_replace('abcd', '(.)', null, 0); -
Exemplo 6: Referencie um grupo que não existe. Instruções de exemplo:
-- 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
-
Sintaxe
string regexp_substr(string <source>, string <pattern>[, bigint <start_position>[, bigint <occurrence>]]) -
Descrição
Retorna a substring a partir da start_position na string source que corresponde ao pattern na ocorrência especificada por occurrence.
-
Parâmetros
source: obrigatório. Tipo STRING. A string a ser pesquisada.
pattern: obrigatório. Constante STRING ou expressão regular. O padrão a ser correspondido. A sintaxe de expressão regular é descrita em RLIKE string matching.
start_position: opcional. Constante BIGINT. O valor deve ser maior que 0. Se você não especificar este parâmetro, o valor padrão será 1, o que indica que a pesquisa começa a partir do primeiro caractere da string source.
occurrence: opcional. Constante BIGINT. O valor deve ser maior que 0. O valor padrão é 1, o que indica a primeira correspondência.
-
Valor de retorno
Retorna uma STRING. O valor de retorno segue estas regras:
Se o pattern estiver vazio, ocorre um erro.
Se nenhuma correspondência for encontrada, a função retorna NULL.
Se start_position ou occurrence não for um BIGINT ou for menor ou igual a 0, ocorre um erro.
Se source, pattern, start_position ou occurrence for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Retorne a substring que corresponde ao padrão especificado em
I love aliyun very much. Instrução de exemplo:-- 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); -
Exemplo 2: Um parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select regexp_substr('I love aliyun very much', null);
-
REPEAT
-
Sintaxe
string repeat(string <str>, bigint <n>) -
Descrição
Retorna a string str repetida n vezes.
-
Parâmetros
str: obrigatório. Tipo STRING. Se a entrada for BIGINT, DOUBLE, DECIMAL ou DATETIME, será implicitamente convertida para STRING.
n: obrigatório. Tipo BIGINT. O tamanho do valor não deve exceder 2 MB.
-
Valor de retorno
Retorna um valor do tipo STRING. O valor de retorno segue estas regras:
Se str não for do tipo STRING, BIGINT, DOUBLE, DECIMAL ou DATETIME, a função retorna um erro.
Se n estiver vazio, a função retorna um erro.
Se str ou n for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Repita a string
abc5vezes. Instrução de exemplo:-- Returns abcabcabcabcabc. select repeat('abc', 5); -
Exemplo 2: Um parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select repeat('abc', null);
-
REPLACE
-
Sintaxe
string replace(string <str>, string <old>, string <new>) -
Descrição
Substitui todas as ocorrências de old por new em str e retorna a str modificada. Se nenhuma correspondência for encontrada, a função retorna a str original. Esta é uma função de extensão do MaxCompute V2.0.
-
Parâmetros
str: obrigatório. Tipo STRING. A string de origem.
old: obrigatório. A string a ser comparada.
new: obrigatório. Tipo STRING. A string de substituição.
-
Valor de retorno
Retorna um valor do tipo STRING. Se qualquer parâmetro de entrada for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Substitua todas as ocorrências da substring
ababpor12na stringababab. Instrução de exemplo:-- Returns 12ab. select replace('ababab','abab','12'); -
Exemplo 2: Um dos parâmetros de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select replace('123abab456ab',null,'abab');
-
REVERSE
-
Sintaxe
string reverse(string <str>) -
Descrição
Retorna o inverso da string str.
-
Parâmetros
str: obrigatório. Um parâmetro do tipo STRING. Se a entrada for um valor BIGINT, DOUBLE, DECIMAL ou DATETIME, será implicitamente convertida para o tipo STRING.
-
Valor de retorno
Retorna um valor do tipo STRING. As seguintes regras se aplicam:
Se o tipo de dados de str não for STRING, BIGINT, DOUBLE, DECIMAL ou DATETIME, a função retorna um erro.
Se str for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Inverta a string
I love aliyun very much. Instrução de exemplo:-- Returns hcum yrev nuyila evol I. select reverse('I love aliyun very much'); -
Exemplo 2: O parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select reverse(null);
-
RPAD
-
Sintaxe
string rpad(string <str1>, int <length>, string <str2>) -
Descrição
Preenche a string str1 à direita até atingir length caracteres, usando a string de preenchimento str2. Esta é uma função de extensão no MaxCompute V2.0.
-
Parâmetros
str1: obrigatório. Tipo STRING. A string a ser preenchida à direita.
length: obrigatório. Tipo INT. Deve ser maior ou igual a 0. Especifica o número de caracteres no resultado preenchido.
str2 (obrigatório): A string usada para preenchimento.
-
Valor de retorno
Retorna o tipo STRING. O valor de retorno segue estas regras:
Se length for menor que o tamanho de str1, a função retorna os length caracteres mais à esquerda de str1.
Se length for 0, a função retorna uma string vazia.
Se nenhum parâmetro de entrada for fornecido ou se qualquer parâmetro de entrada for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Preencha a string
abcdefghà direita até 10 caracteres usando a string de preenchimento12. Instrução de exemplo:-- Returns abcdefgh12. select rpad('abcdefgh', 10, '12'); -
Exemplo 2: Preencha a string
abcdefghà direita até 5 caracteres usando a string de preenchimento12. Instrução de exemplo:-- Returns abcde. select rpad('abcdefgh', 5, '12'); -
Exemplo 3: length é 0. Instrução de exemplo:
-- Returns empty string. select rpad('abcdefgh' ,0, '12'); -
Exemplo 4: Um parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select rpad(null ,0, '12');
-
RTRIM
-
Sintaxe
string rtrim(string <str>[, <trimChars>]) string trim(trailing [<trimChars>] from <str>) -
Descrição
Remove caracteres da extremidade direita de str:
Se trimChars não for especificado, os espaços são removidos por padrão.
Se trimChars for especificado, os caracteres em trimChars são tratados como uma coleção. A substring mais longa da extremidade direita de str que consiste inteiramente em caracteres da coleção trimChars é removida.
-
Parâmetros
str: obrigatório. Tipo STRING. A string a ser aparada. Se a entrada for BIGINT, DECIMAL, DOUBLE ou DATETIME, será implicitamente convertida para STRING.
trimChars: opcional. Tipo STRING. Os caracteres a serem removidos.
-
Valor de retorno
Retorna o tipo STRING. O valor de retorno segue estas regras:
Se str não for STRING, BIGINT, DOUBLE, DECIMAL ou DATETIME, a função retorna um erro.
Se str ou trimChars for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Remova os espaços à direita da string
yxTxyomxx. Instruções de exemplo:-- Returns yxTxyomxx. select rtrim(' yxTxyomxx '); -- Equivalent to: select trim(trailing from ' yxTxyomxx '); -
Exemplo 2: Remova todos os caracteres à direita da string
yxTxyomxxque pertencem ao conjuntoxy.-- Returns yxTxyom. Any trailing x or y is removed. select rtrim('yxTxyomxx', 'xy'); -- Equivalent to: select trim(trailing 'xy' from 'yxTxyomxx'); -
Exemplo 3: O parâmetro de entrada é NULL. Instruções de exemplo:
-- Returns NULL. select rtrim(null); select rtrim('yxTxyomxx', null);
-
SOUNDEX
-
Sintaxe
string soundex(string <str>) -
Descrição
Converte uma string padrão em uma string SOUNDEX.
-
Parâmetros
str: Obrigatório. A string a ser convertida. Este parâmetro é do tipo STRING. Esta função é uma extensão no MaxCompute V2.0.
-
Valor de retorno
O valor de retorno é do tipo STRING. Se str for NULL, a função retornará NULL.
-
Exemplos
-
Exemplo 1: Converte a string
helloem uma string SOUNDEX. Instrução de exemplo:-- Returns H400. select soundex('hello'); -
Exemplo 2: O parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select soundex(null);
-
SPACE
-
Sintaxe
string space(bigint <n>) -
Descrição
Gera uma string composta por n espaços.
-
Parâmetros
n: obrigatório. Tipo BIGINT. O tamanho do valor não deve exceder 2 MB.
-
Valor de retorno
Retorna uma STRING. O valor de retorno segue estas regras:
Se n estiver vazio, a função retorna um erro.
Se n for NULL, a função retorna NULL.
-
Exemplo
-- Returns 10. select length(space(10));
SPLIT
-
Sintaxe
ARRAY<STRING> SPLIT(STRING <source>, STRING <delimiter>[, BOOLEAN <trimTailEmpty>]) -- Standard example. -- Returns ["a","b","c"]. SELECT SPLIT('a,b,c', ','); -
Parâmetros
source: Obrigatório. A string a ser dividida. O tipo de dado é STRING.
delimiter: Obrigatório. O separador usado para dividir a string. Este parâmetro aceita regular expressions. O tipo de dado é STRING.
trimTailEmpty: Opcional. Especifica se as strings vazias à direita devem ser mantidas. O valor padrão é
true. Defina este parâmetro comofalsepara manter as strings vazias à direita. O tipo de dado é BOOLEAN.
-
Valor de retorno
Retorna um valor do tipo ARRAY<STRING>.
-
Exemplos
-
Exemplo 1: Dividir uma string usando vírgula.
-- Returns ["a","b","c"]. SELECT SPLIT('a,b,c', ','); -
Exemplo 2: Lidar com casos em que o separador não existe.
-- Returns ["a,b,c"]. SELECT SPLIT('a,b,c', ':'); -
Exemplo 3: Lidar com separadores consecutivos. Isso cria um elemento de string vazia.
-- Returns ["a","","b"]. SELECT SPLIT('a,,b', ','); -
Exemplo 4: Usar um separador de vários caracteres.
-- Returns ["a","b","c"]. SELECT SPLIT('a::b::c', '::'); -
Exemplo 5: Manter strings vazias à direita.
-- 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); -
Exemplo 6: Usar um caractere de escape ou 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', '\\\\'); -
Exemplo 7: Lidar com 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
-
Sintaxe
string split_part(string <str>, string <separator>, bigint <start>[, bigint <end>]) -
Descrição
Divide a string str usando o delimitador separator e retorna a substring da parte start até end (intervalo fechado).
-
Parâmetros
str: obrigatório. Tipo STRING. A string a ser dividida. Se a entrada for BIGINT, DOUBLE, DECIMAL ou DATETIME, ela será convertida implicitamente para STRING.
separator: obrigatório. Constante STRING. O delimitador (um único caractere ou string).
start: obrigatório. Constante BIGINT, deve ser maior que 0. O número da parte inicial (contando a partir de 1).
end: constante BIGINT maior ou igual a start. Este parâmetro especifica o número do segmento final a ser retornado. Se não for especificado, seu valor padrão será o valor de start, e apenas o segmento especificado por start será retornado.
-
Descrição do valor de retorno
Retorna uma STRING. O valor de retorno segue estas regras:
Se start exceder o número real de partes (por exemplo, há 6 partes, mas start > 6), uma string vazia será retornada.
Se separator não for encontrado em str e start = 1, a str inteira é retornada. Se str estiver vazia, uma string vazia será retornada.
Se separator estiver vazio, a str original é retornada.
Se end exceder o número de partes, a substring de start até a última parte é retornada.
Se str não for do tipo STRING, BIGINT, DOUBLE, DECIMAL ou DATETIME, um erro será retornado.
Se separator não for uma constante STRING, um erro será retornado.
Se start ou end não for uma constante BIGINT, um erro será retornado.
Se qualquer parâmetro, exceto separator, for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Dividir a string
a,b,c,dusando o delimitador,e retornar as partes especificadas. Instruções de exemplo:-- Returns a. select split_part('a,b,c,d', ',', 1); -- Returns a,b. select split_part('a,b,c,d', ',', 1, 2); -
Exemplo 2: start excede o número real de partes. Instrução de exemplo:
-- Returns empty string. select split_part('a,b,c,d', ',', 10); -
Exemplo 3: separator não é encontrado em str. Instruções de exemplo:
-- Returns a,b,c,d. select split_part('a,b,c,d', ':', 1); -- Returns empty string. select split_part('a,b,c,d', ':', 2); -
Exemplo 4: separator está vazio. Instrução de exemplo:
-- Returns a,b,c,d. select split_part('a,b,c,d', '', 1); -
Exemplo 5: end excede o número real de partes. Instrução de exemplo:
-- Returns b,c,d. select split_part('a,b,c,d', ',', 2, 6); -
Exemplo 6: Qualquer parâmetro de entrada, exceto separator, é NULL. Instrução de exemplo:
-- Returns NULL. select split_part('a,b,c,d', ',', null);
-
SUBSTR
-
Sintaxe
string substr(string <str>, bigint <start_position>[, bigint <length>]) -
Descrição
Retorna uma substring de str começando em start_position com o comprimento de length.
-
Parâmetros
str: obrigatório. Tipo STRING. Se a entrada for BIGINT, DECIMAL, DOUBLE ou DATETIME, será convertida implicitamente para STRING.
-
start_position: obrigatório. Tipo BIGINT. A posição inicial padrão é 1.
Versão de tipo de dado compatível com Hive: Se start_position=0, comporta-se como a posição 1.
Versões de tipo de dado 1.0 e 2.0: Se start_position=0, retorna NULL.
-
length: opcional. Tipo BIGINT. O comprimento da substring deve ser >0.
ImportanteSe
setproject odps.function.strictmode=false: um length<0 retorna em branco.Se
setproject odps.function.strictmode=true: um length<0 retorna um erro.
-
Valor de retorno
Retorna o tipo STRING. O valor de retorno segue estas regras:
Se str não for STRING, BIGINT, DECIMAL, DOUBLE ou DATETIME, a função retorna um erro.
Se length não for BIGINT ou for ≤0, a função retorna um erro.
Se você omitir length, a substring se estende até o final de str.
Se str, start_position ou length for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Retornar uma substring de
abca partir da posição especificada com o comprimento especificado. Instruções de exemplo:-- Returns bc. select substr('abc', 2); -- Returns b. select substr('abc', 2, 1); -- Returns bc. select substr('abc',-2 , 2); -
Exemplo 2: Quando um parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select substr('abc', null);
-
SUBSTRING
-
Sintaxe
string substring(string|binary <str>, int <start_position>[, int <length>]) -
Descrição
Retorna uma substring de str começando em start_position com length.
-
Parâmetros
str: obrigatório. Este parâmetro é do tipo STRING ou BINARY.
start_position: obrigatório. Este parâmetro é do tipo INT. A posição inicial é baseada em 1. Se start_position for 0, uma string vazia será retornada. Se start_position for um valor negativo, a posição é contada de trás para frente a partir do final da string. Nesse caso, -1 refere-se ao último caractere, e a contagem prossegue sequencialmente para trás.
length: opcional. Este parâmetro é do tipo BIGINT. O comprimento da substring deve ser maior que 0.
-
Valor de retorno
O valor de retorno é do tipo STRING. Ele segue as seguintes regras:
Se str não for do tipo STRING ou BINARY, um erro será retornado.
Se length não for do tipo BIGINT ou for menor ou igual a 0, um erro será retornado.
Quando o parâmetro length é omitido, uma substring até o final de str é retornada.
Se str, start_position ou length for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Este exemplo retorna uma substring de
abca partir de uma posição especificada com um comprimento especificado. Instruções de exemplo:-- 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); -
Exemplo 2: Este exemplo mostra um caso em que um parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select substring('abc', null, null);
-
SUBSTRING_INDEX
-
Sintaxe
string substring_index(string <str>, string <separator>, int <count>) -
Descrição
Esta função extrai uma substring da string str, antes ou depois da count-ésima ocorrência de um delimitador. Se count for positivo, a busca pelo delimitador começa da esquerda. Se count for negativo, a busca começa da direita. Esta função é uma extensão do MaxCompute V2.0.
-
Parâmetros
str: obrigatório. Tipo STRING. É a string de onde a extração será feita.
separator: obrigatório. Delimitador do tipo STRING.
count: Obrigatório. Um valor INT que especifica a posição do separador.
-
Valor de retorno
A função retorna um valor do tipo STRING. Se qualquer parâmetro de entrada for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Extrai da string
https://www.alibabacloud.com. Instruções de exemplo:-- Returns https://www.alibabacloud. select substring_index('https://www.alibabacloud.com', '.', 2); -- Returns alibabacloud.com. select substring_index('https://www.alibabacloud.com', '.', -2); -
Exemplo 2: Um parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select substring_index('https://www.alibabacloud.com', null, 2);
-
TO_CHAR
-
Sintaxe
string to_char(boolean <value>) string to_char(bigint <value>) string to_char(double <value>) string to_char(decimal <value>) -
Descrição
Converte valores do tipo BOOLEAN, BIGINT, DECIMAL ou DOUBLE em suas representações STRING.
-
Parâmetros
value: obrigatório. Um valor do tipo BOOLEAN, BIGINT, DECIMAL ou DOUBLE.
-
Valor de retorno
Retorna um valor do tipo STRING. O valor de retorno segue estas regras:
Se value não for do tipo BOOLEAN, BIGINT, DECIMAL ou DOUBLE, a função retorna um erro.
Se value for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Converter valores para a representação STRING. Instrução de exemplo:
-- Returns 123. select to_char(123); -- Returns TRUE. select to_char(true); -- Returns 1.23. select to_char(1.23); -
Exemplo 2: O parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select to_char(null);
-
TO_JSON
-
Sintaxe
string to_json(<expr>) -
Descrição
Converte uma expressão especificada por expr de um determinado tipo de dado complexo em uma string JSON.
-
Parâmetros
expr: obrigatório. Uma expressão do tipo ARRAY, MAP ou STRUCT.
NotaSe a expressão de entrada for do tipo STRUCT (
struct<key1:value1, key2:value2>), observe os seguintes pontos:Todas as chaves são convertidas em letras minúsculas ao converter a expressão em uma string JSON.
Se um
valuefor nulo, o par chave-valor ao qual ovaluepertence não será incluído na string JSON retornada. Por exemplo, sevalue2for nulo,key2:value2não será incluído na string JSON retornada.
-
Valor de retorno
Uma string JSON é retornada.
-
Exemplos
-
Exemplo 1: Converter uma expressão de um determinado tipo de dado complexo em uma string JSON. Instrução de exemplo:
-- 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)))); -
Exemplo 2: A expressão de entrada é do tipo STRUCT. Instrução de exemplo:
-- 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
-
Sintaxe
string tolower(string <source>) -
Descrição
Converte letras maiúsculas do alfabeto inglês na string source para minúsculas.
-
Parâmetros
source: obrigatório. Um valor do tipo STRING. Se a entrada for um valor BIGINT, DOUBLE, DECIMAL ou DATETIME, será convertida implicitamente para o tipo STRING. Esta função opera apenas em caracteres do alfabeto inglês.
-
Valor de retorno
Retorna um valor do tipo STRING. O valor retornado baseia-se nas seguintes regras:
Se o tipo de dado de source não for STRING, BIGINT, DOUBLE, DECIMAL ou DATETIME, um erro será retornado.
Se source for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Converter letras maiúsculas em minúsculas. Instruções de exemplo:
-- Returns abcd. select tolower('aBcd'); -
Exemplo 2: O parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select tolower(null);
-
TOUPPER
-
Sintaxe
string toupper(string <source>) -
Descrição
Converte os caracteres minúsculos na string source em seus respectivos caracteres maiúsculos.
-
Parâmetros
source: obrigatório. Tipo STRING. Se a entrada for BIGINT, DOUBLE, DECIMAL ou DATETIME, será convertida implicitamente para STRING. Aceita apenas caracteres do alfabeto inglês.
-
Valor de retorno
Retorna um valor do tipo STRING. O valor retornado baseia-se nas seguintes regras:
Se o tipo de dado de source não for STRING, BIGINT, DOUBLE, DECIMAL ou DATETIME, um erro será retornado.
Se source for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Converter letras minúsculas em maiúsculas. Instruções de exemplo:
-- Returns ABCD. select toupper('aBcd'); -
Exemplo 2: O parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select toupper(null);
-
TRANSLATE
-
Sintaxe
string translate(string|varchar <str1>, string|varchar <str2>, string|varchar <str3>) -
Descrição
Substitui cada caractere em str1 que aparece em str2 pelo caractere correspondente em str3. Se nenhuma correspondência for encontrada, nenhuma substituição ocorrerá. Esta função é uma extensão no MaxCompute V2.0.
-
Valor de retorno
Retorna uma STRING. Se qualquer parâmetro de entrada for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Substituir cada caractere em
abababque aparece emababpelo caractere correspondente emcd. Instrução de exemplo:-- Returns cdcdcd. select translate('ababab','abab','cd'); -
Exemplo 2: Substituir cada caractere em
abababque aparece emababpelo caractere correspondente emcdefg. Instrução de exemplo:-- Returns cdcdcd. select translate('ababab','abab','cdefg'); -
Exemplo 3: Um parâmetro de entrada é NULL. Instrução de exemplo:
-- Returns NULL. select translate('ababab','cd',null);
-
TRIM
-
Sintaxe
string trim(string <str>[,<trimChars>]) string trim([BOTH] [<trimChars>] from <str>) -
Descrição
Remove caracteres de ambas as extremidades de str:
Por padrão, a função remove espaços. Especifique trimChars para alterar esse comportamento.
Se você especificar trimChars, a função trata os caracteres em trimChars como um conjunto e remove as substrings mais longas possíveis, compostas apenas por caracteres desse conjunto, de ambas as extremidades (esquerda e direita) de str.
-
Parâmetros
str: obrigatório. Tipo STRING. A string a ser aparada. Se a entrada for BIGINT, DECIMAL, DOUBLE ou DATETIME, será convertida implicitamente para STRING.
trimChars: opcional. Tipo STRING. Os caracteres a serem removidos.
-
Valor de retorno
Retorna o tipo STRING. O valor de retorno segue estas regras:
Se str não for STRING, BIGINT, DOUBLE, DECIMAL ou DATETIME, a função retorna um erro.
Se str ou trimChars for NULL, a função retorna NULL.
-
Exemplos
-
Exemplo 1: Remover espaços de ambas as extremidades da string
yxTxyomxx. Instruções de exemplo:-- Returns yxTxyomxx. select trim(' yxTxyomxx '); -- Equivalent to: select trim(both from ' yxTxyomxx '); select trim(from ' yxTxyomxx '); -
Exemplo 2: Remover todos os caracteres de ambas as extremidades da string
yxTxyomxxque pertencem ao 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'); -
Exemplo 3: O parâmetro de entrada é NULL. Instruções de exemplo:
-- Returns NULL. select trim(null); select trim('yxTxyomxx', null);
-
URL_DECODE
-
Sintaxe
string url_decode(string <input>[, string <encoding>]) -
Descrição
Converte uma string de entrada do formato
application/x-www-form-urlencoded MIMEpara caracteres padrão. Esta função é o inverso deurl_encode. As regras de codificação são as seguintes:a–z e A–Z permanecem inalterados.
Ponto (.), hífen (-), asterisco (*) e sublinhado (_) permanecem inalterados.
O sinal de mais (+) é convertido em espaço.
Sequências no formato
%xysão convertidas em valores de byte. Bytes consecutivos são decodificados em strings usando o nome de encoding especificado.Todos os outros caracteres permanecem inalterados.
-
Parâmetros
input: Este parâmetro é obrigatório e do tipo STRING. Representa a string de entrada.
encoding: Este parâmetro é opcional e especifica o formato de codificação. Aceita formatos como GBK e UTF-8. Se não for especificado, a codificação padrão é UTF-8.
-
Valor de retorno
Esta função retorna um tipo STRING codificado em UTF-8. Se o parâmetro input ou encoding for NULL, a função retorna NULL.
-
Exemplo
-- 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
-
Sintaxe
string url_encode(string <input>[, string <encoding>]) -
Descrição
Codifica uma string de entrada no formato
application/x-www-form-urlencoded MIME. Regras de codificação:As letras de a a z e de A a Z permanecem inalteradas.
O ponto (.), o hífen (-), o asterisco (*) e o sublinhado (_) permanecem inalterados.
Os espaços se convertem em sinais de mais (+).
A função converte todos os outros caracteres em valores de byte usando a encoding especificada. Cada byte é representado como
%xy, ondexycorresponde à representação hexadecimal do caractere.
-
Parâmetros
input: obrigatório. Tipo STRING. A string de entrada.
encoding: opcional. Formato de codificação. Inclui os formatos GBK e UTF-8. Se não especificado, o padrão é UTF-8.
-
Valor de retorno
Retorna uma STRING. Caso input ou encoding seja NULL, o retorno é NULL.
-
Exemplo
-- 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');
Referências
Para ir além das funções integradas, crie funções definidas pelo usuário (UDFs). Para mais informações, consulte Overview.