PostgreSql - Função concat e operador de concatenação
Tecnologia da Informação

PostgreSql - Função concat e operador de concatenação


Neste artigo, vamos apresentar exemplos da utilização do operador de concatenação e do uso da funçao concat no PostgreSql. Tanto o "operador de concatenação" quanto a função "concat" servem para unir uma ou mais strings ou valores.

A função concat é mais simples de ser utilizada do que o operador de concatenação, pois ela ignora dados nulos, porém só pode ser utilizada na versão 9.1 ou em versões posteriores.

Caso tenha interesse faça o download dos exemplos ou veja os scripts no GitHub.

Operador de concatenação

O operador de concatenação é representados por "||". 

Exemplo:

Vamos apresentar os endereços completos das filiais de uma rede de varejo. 
Será utilizado os dados das colunas da tabela "locacao_filiais", exibida a seguir.
Antes de cada endereço vai ser exibida a string "Endereço: ".


Para exibirmos os campos da tabela "locacao_filiais" concatenados, executamos a sentença abaixo:

SELECT 
'Endereço: ' ||
tipo_logradouro || ' ' || 
logradouro || ' ' ||
numero || ' ' ||
complemento || ' ' ||
bairro
FROM locacao_filiais;

Observação: Concatenamos espaço em branco (' ') entre os campos para os dados não fiquem "grudados" uns nos outros.

Após a execução da sentença, teremos os campos concatenados . Conforme podemos visualizar na imagem abaixo:



Você deve estar pensando o que ocorreu? Por que somente o primeiro registro apareceu concatenado? Cadê os outros?

Se você observar os dois últimos registros, verá que eles não possuem dados na coluna complementoou seja, os dados são nulos nesta coluna. Ao fazer uma concatenação com um dado nulo, o resultado é nulo.

Como vamos resolver isto?

Antes de fazer a concatenação da coluna complemento faremos uma verificação. Se houver dados no campo, faremos a concatenação com os dados deste campo. Caso contrário substituiremos o dado nulo por uma string vazia  ('').  Para isso utilizaremos a função coalesce, conforme exibido na sentença abaixo.

SELECT 
'Endereço: ' ||
tipo_logradouro || ' ' || 
logradouro || ' ' ||
numero || ' ' ||
COALESCE(complemento, '') || ' ' ||
bairro
FROM locacao_filiais;

Após a execução da sentença, os dados dos três registros serão exibidos. Conforme podemos visualizar na imagem abaixo:



O nome da coluna será exibido como "?column?". Caso queira alterar este nome, crie um alias (apelido). Após o "AS" coloque o nome da coluna que você precisa. Neste exemplo, eu vou chamá-la de filiais.

SELECT 
'Endereço: ' ||
tipo_logradouro || ' ' || 
logradouro || ' ' ||
numero || ' ' ||
COALESCE(complemento, '') || ' ' ||
bairro AS filiais
FROM locacao_filiais;

Após a execução da sentença, o nome da coluna será exibido como "filiais", conforme exibido na imagem abaixo: 


Função concat

A função concat surgiu a partir da versão 9.1, logo ela funcionará nesta versão ou em versões posteriores. Ela tem função similar ao operador de concatenação "||". Além de unir strings ou valores ela possui uma vantagem, pois ignora dados nulos, se você concatenar uma string ou valor com nulo o resultado não será nulo.

Exemplo:

Este exemplo é bem parecido com o primeiro exemplo. 
Vamos apresentar os endereços completos das filiais de uma rede de varejo, mas agora será utilizada a função concat
Será utilizado os dados das colunas da tabela "locacao_filiais", exibida a seguir.
Antes de cada endereço vai ser exibida a string "Endereço: ".





Na funcão concat os dados que serão utilizados deverão estar entre virgulas. 

CONCAT(coluna_1, coluna_2, coluna_3, ....)

Utilizamos a função concat na sentença abaixo:

SELECT
CONCAT
(
    'Endereço: ', tipo_logradouro' ', logradouro, ' ', numero, ' ', complemento, ' ', bairro
)
FROM locacao_filiais;

Observação: Concatenamos espaço em branco (' ') entre os campos para os dados não ficarem "grudados" uns nos outros.

Após a execução da sentença será exibido o resultado a seguir:


Perceba que foram exibidos os três registros concatenados e não houve a necessidade de se preocupar em tratar os dados nulos, pois na função concat eles são ignorados.

O nome da coluna será exibido como "concat". Caso queira alterar este nome, crie um alias (apelido). Após o "AS" coloque o nome da coluna que você precisa. Neste exemplo, eu vou chamá-la de filiais.

SELECT
CONCAT
(
    'Endereço: ', tipo_logradouro' ', logradouro, ' ', numero, ' ', complemento, ' ', bairro
) AS filiais
FROM locacao_filiais;

Após a execução da sentença, o nome da coluna será exibido como "filiais", conforme exibido na imagem abaixo: 




loading...

- Oracle - Calcular Total /subtotal Com Rollup
Neste artigo, vamos mostrar 3 exemplos de como utilizar a função "SUM" acompanhada do comando "ROLLUP" para calcular o subtotal / total em uma consulta. Caso tenha interesse, faça o download ou veja os scripts deste artigo...

- Mysql - Sum Com Rollup - Calcular O Subtotal / Total
Neste artigo, vamos mostrar 3 exemplos de como utilizar a função "SUM" acompanhada do comando "WITH ROLLUP" para calcular o subtotal / total em uma consulta. Caso ainda não conheça a função "SUM", veja o artigo "Mysql SUM - Soma " Caso...

- Mysql - Função Count
O artigo apresenta 8 exemplos de como utilizar a função de agrupamento "count", das seguintes formas: COUNT(*);COUNT(nome_da_coluna);COUNT COM GROUP BY;COUNT(DISTINCT(nome_da_coluna));Caso tenha interesse faça o download dos scripts ou veja...

- Postgresql - Função Count
O artigo apresenta 8 exemplos de como utilizar a função de agrupamento "count", das seguintes formas: COUNT(*);COUNT(nome_da_coluna);COUNT COM GROUP BY;COUNT(DISTINCT(nome_da_coluna)); Caso tenha interesse faça o download dos scripts ou veja no GitHub. ...

- Postgresql - Função Char_length E Length
Este artigo apresenta três exemplos de duas funções no PostgreSql:char_length ou character_length: utilizaçao desta função na manipulação de string;length: utilizaçao desta função na manipulação de string;length: utilizaçao...



Tecnologia da Informação








.