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

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.

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...

Appserver Protheus Rest - TLS 1.2

A partir da release 17.3.0.20 vai estar disponível no rest as tags: TLS1=3 que ativa o TLS 1.2 State=1 Bugs=1 O rest do Protheus somente funcionava até o TLS 1.0, ao qual muitos navegadores já estão descontinuando suporte. [HTTPREST] Port=56650 URIs=HTTPURI SECURITY=1 VERBOSE=0 SSL2=1 SSL3=1 TLS1=3 Bugs=1 State=1