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 complemento, ou 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...
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...
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...
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...
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. ...
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...