1
resposta

Dúvida sobre as funções CONCAT, UPPER, LEFT_TEXT e SUBSTR

Eu não consegui entender o motivo de usar toda essa expressão, teria como dar uma exemplo prático de como cada função altera o campo?

CONCAT(UPPER(LEFT_TEXT(MotivoSaida, 1)), "", SUBSTR(MotivoSaida, 2, 50))

1 resposta

Letícia,

Nunca tinha ouvido falar o "Looker Studio", mas parece que se trata de MySQL, certo? Coisas da Dona MariaDB...

Ainda bem que MySQL é fácil!

Vamos seguir a ideia do Mister Jack, por partes...

  • CONCAT - Basicamente: Você passa parâmetro e ele junta tudo. Numéricos são convertidos para texto e se tiver uma variável NULL no meio vira tudo NULL.

  • UPPER - Basicamente: Coloca tudo na letra maiúscula.

  • LEFT_TEXT - Basicamente: Pega a quantidade de caracteres da posição 0 até a posição que você quiser.

  • SUBSTR - Pega os caracteres que você quiser! Só fala a posição de início e a posição de fim, valew?

Agora sim, vamos analisar essa bagaça...

MotivoSaida = "Letícia Aparecida Bueno Dias"

CONCAT(UPPER(LEFT_TEXT(MotivoSaida, 1)), "", SUBSTR(MotivoSaida, 2, 50))

  • LEFT_TEXT(MotivoSaida, 1) - Pegue a 1ª posição de MotivoSaida = "L"
  • SUBSTR(MotivoSaida, 2, 50) - Pegue apartir da 2ª posição até + 50 posições = "etícia Aparecida Bueno Dias"
  • UPPER - Joga tudo para maiúsculo = "LETICIA APARECIDA BUENO DIAS"
  • CONCAT - Concatene tudo = "LETICIA APARECIDA BUENO DIAS"

A saída será: "LETICIA APARECIDA BUENO DIAS"

Coloquei no MySQL... EPA! Tem uma coisa estranha... Acho que o UPPER está trocado com o CONCAT!

O CERTO É:

UPPER(CONCAT(LEFT_TEXT(MotivoSaida, 1)), "", SUBSTR(MotivoSaida, 2, 50))

-- SET @resultado := CONCAT(UPPER(LEFT(@MotivoSaida, 1)), "", SUBSTR(@MotivoSaida, 2, 50));
SET @MotivoSaida := "Letícia Aparecida Bueno Dias";
SET @resultado1 := LEFT(@MotivoSaida, 1);
SET @resultado2 := SUBSTR(@MotivoSaida, 2, 50);
SET @resultado3 := CONCAT(@resultado1, "", @resultado2);
SET @resultado4 := UPPER(@resultado3);
SELECT @resultado1, @resultado2, @resultado3, @resultado4;
SELECT UPPER(CONCAT(LEFT(@MotivoSaida, 1)), "", SUBSTR(@MotivoSaida, 2, 50));

MySQL Workbench

Abaixo alguns links que peço a gentileza de você acessar e ler:

===============================================================

CONCAT

Retorna o texto que é a concatenação de dois ou mais campos ou expressões.

https://support.google.com/looker-studio/answer/7583443?hl=pt-br&sjid=15111742380669954463-SA

===============================================================

MySQL CONCAT() Function

https://www.w3schools.com/sql/func_mysql_concat.asp

===============================================================

MySQL

12.8 Funções e Operadores de String

CONCAT(str1,str2,...)

mysql> SELECT CONCAT('My', 'S', 'QL');
        -> 'MySQL'
mysql> SELECT CONCAT('My', NULL, 'QL');
        -> NULL
mysql> SELECT CONCAT(14.3);
        -> '14.3'

https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_concat

===============================================================

FUNÇÃO CONCAT() NO MYSQL

A função CONCAT() no MySQL é usada para concatenar os argumentos fornecidos. Pode ter um ou mais argumentos. Se todos os argumentos forem strings não binárias, o resultado será uma string não binária. Se os argumentos incluírem cadeias binárias, o resultado será uma cadeia binária. Se um argumento numérico for fornecido, ele será convertido em sua forma de string não binária equivalente.

https://acervolima.com/funcao-concat-no-mysql/

===============================================================

UPPER

Converte o texto em letras maiúsculas.

https://support.google.com/looker-studio/answer/7583317?hl=pt-BR&sjid=15111742380669954463-SA

===============================================================

MySQL UPPER() Function

SELECT UPPER("SQL Tutorial is FUN!") AS UppercaseText;

https://www.w3schools.com/sql/func_mysql_upper.asp

https://www.w3schools.com/sql/trymysql.asp?filename=trysql_func_mysql_upper

===============================================================

LEFT_TEXT

Retorna uma quantidade de caracteres do início de uma string especificada.

LEFT_TEXT(Campanha, 6)

https://support.google.com/looker-studio/answer/9366535?hl=pt-BR

===============================================================

SUBSTR

Retorna uma sequência específica de caracteres do texto.

https://support.google.com/looker-studio/answer/7583225?hl=pt-BR&sjid=15111742380669954463-SA

===============================================================

MySQL SUBSTRING() Function

https://www.w3schools.com/sql/func_mysql_substring.asp

===============================================================

Espero ter ajudado!

Se todas as suas dúvidas foram resolvidas, por favor, feche o tópico e se a minha resposta foi infinitamente melhor que a dos "Scubes" (como sempre é), por favor me pontue.

[]'s,

Fabio I.