Pular para o conteúdo principal

CONCAT() no Mysql

Olá Para quem me escuta todos os dias, ou melhor lê todos os dias (isso é impossível mas vamos dizer que sim)

Enfim, vou postar um problema que estava tendo com o MySQL, eu tinha uma tabela cliente com 5 colunas
ID, DESPRIMEIRONOME, DESSEGUNDONOME,DESRAZAOSOCIAL,DESNOMEFANTASIA.

Sendo que tinha um combobox (SELECT) para selecionar o cliente,  como eu tinha 4 campos e apenas 1 select pensei, vamos concatenar, perfeito solução resolvida, errado erra apenas o começo.

Toda vez que a função CONCAT acha um campo NULL ele retorna NULL, certo mais e dae? qual o problema? o problema é que não pode trazer NULL.

Resolver? Como?

Depois de um googlada, eu ache um kra falando do mesmo problema, então resolvi testar, de certa forma temo que usar uma função a mais em nosso código SQL.

Fica assim:

SELECT clientes.id,CONCAT(COALESCE(desnomefantasia, '*nao tem valor*'),COALESCE(desprimeironome, 'nao tem valor*'),COALESCE(desrazaosocial, ' '),COALESCE(dessegundonome, 'nao tem valor*'),' ') AS nomecompleto FROM clientes

Toda vez que ele retornar um valor NULL ele vai dizer *nao tem valor*, no meu caso eu deixei em branco, assim sendo ele irá trazer nada quando for NULL e fazer o nome bonitinho na select.

Fonte da informação: http://www.psantos.com.pt/files/artigos/2011-02-18-cuidado-com-a-funcao-concat-do-mysql-e-campos-a-null.html

Grande Abraço Fiquem com Deus...


Postagens mais visitadas deste blog

Recursividade Minha Linda! Estrutura Produtos Protheus SG1

Fato! Depois que você conhece recursividade em sua vida tudo fica mais leve (rss... ) a recursividade pode ser infinita (pode não ta!) se for infinita vai dar problema, não pode. Mas a recursividade nos ajuda a deixar nosso sistema mais flexível e dinâmico para montar uma série de regras de negócio. Hoje vou falar exatamente da SG1, tabela TOTVS Microsiga Protheus que é utilizada para montar a estrutura de um produto dentro PCP (Planejamento e Controle de Produção). Isso séria algo que a recursividade iria ajudar. Na SG1 temos o campos G1_COD (Pai) e G1_COMP (Filho). G1_COD->G1_COMP->G1_COD->G1_COMP->G1_COD->G1_COMP Seria assim o fluxo da informação. Sem mais delongas, abaixo vou deixar o script para MSSQL para apresentar esses dados. Inté! WITH ESTRUT( CODIGO, COD_PAI, COD_COMP, QTD, PERDA, DT_INI, DT_FIM ,TRT ,RECNO, NIVEL ) AS ( SELECT G1_COD PAI, G1_COD, G1_COMP, G1_QUANT, G1_PERDA, G1_INI, G1_FIM,G1_TRT,SG1.R_E_C_N_O_, 1 AS NIVEL FR...

REST Protheus Converter charset CP1252 para UTF8 com Header Accept UTF-8

O Protheus possui um tag que pode ser utilizada para conversão para UTF8 de forma transparente, basta enviar no header da requisição a TAG ACCEPT com charset=UTF-8, também pode-se adicionar o appllication/json. Accept : application/json; charset=UTF-8 ou Accept : charset=UTF-8 Isso ajuda pois não precisa mais utilizar as funções DecodeUTF8 e EncodeUT8 pois o próprio rest já vai fazer isso.

Cadastro de funções ADVPL

FWDirRemove( cDir, nType, lComplete, lKillFiles ) Função para remover diretórios, com a vantagem de remover somente o ultimo nível ou todo o caminho. cDir                   Diretório a ser removido lComplete          Remove todo o caminho (.T.) ou apenas o ultimo nível (.F.) lKillFiles             Remove os arquivos antes de tentar remover o diretório FWMakeDir( cDir, lShowMsg ) Função para criar diretório com seus subdiretórios, com a vantagem de criar todo o caminho. cDir                    Diretório a ser criado lShowMsg          Exibe ou não mensagem caso não consiga criar o diretório FwNoAccent( cString ) Retira acentos de uma string cString ...