Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the breadcrumb-navxt domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/devtools/public_html/blog/wp-includes/functions.php on line 6131

Deprecated: A função WP_Dependencies->add_data() foi chamada com um argumento que está obsoleto desde a versão 6.9.0! Os comentários condicionais do IE são ignorados por todos os navegadores compatíveis. in /home/devtools/public_html/blog/wp-includes/functions.php on line 6131
Sintaxe alternativa ao Select * From

Sintaxe alternativa ao Select * From

O comando mais utilizado pelos analistas de banco de dados sem sombra de dúvidas é o Select * From, este comando até pode ser muito criticado, pois, existem estudos que comprovam a queda de performance em seu uso em relação a especificação dos campos no select.

Mas pensando na economia de linhas de códigos digitados, nosso colega elefante disponibiliza nativamente o comando Table, que pode substituir o Select * From.

Vejamos um exemplo de uso do comando table:

 Table paposql.pessoa;  
 id nome sobrenome dt_nascimento  
  1 Papo Sql       2012-01-01  

Veja que o resultado é o mesmo do comando Select * From. O uso do comando não reflete ganho de performance (Ao menos nos testes com o explain que fiz), é somente um ‘economizador de código’ que pode ajudar muito, imagina quem digita 50 vezes por dia Select * From? São 400 caracteres digitados a menos por dia.

Um observação a ser feita é que, o comando é nativo somente a partir da versão 8.4 do PostgreSQL

Fica a dica, abraços a todos e até a próxima.

2 comentários em “Sintaxe alternativa ao Select * From”

  1. Olá pessoal, tudo bem? Sou novo por aqui mais já utilizo bastante as dicas postadas e sempre tem me salvado. Agora estou em um dilema onde eu tenho uma coluna de valor que preciso preencher com 0 a esquerda e com zero a direita (decimais) mais o comando que estou fazendo ou consigo um ou outro.

    to_char (F.vltitulo, '9G999G990D9999') as vltitulo, desta forma sai com os 4 decimais mais não preenche os zeros a esquerda e se eu colocar lpad (F.vltitulo,14,'0') as vltitulo, sai com os zeros a esquerda

    Select

    '002001' as Ident , –Identificador 1,6 N–
    lpad (F.idempresa,6,'0') as empresa, –CodigoEmpresa 7,6 N–
    lpad (P.cdchamada,6,'0') as pessoa, –CodigoPessoa 13,6 N–
    rpad (F.nrtitulo,20,' ') as nrtitulo, –NrTitulo 19,20 C–
    rpad (F.nmtitulo,50,' ') as nome, –Nomedotitulo 39,50 C–
    to_char (F.dtemissao,'DDMMYYYY') as emissao, –DataEmissao 89,8 D–
    to_char (F.dtvencimento,'DDMMYYYY') as venc, –DataVencimento 97,8 D–
    to_char (F.dtbaixa,'DDMMYYYY') as baixa, –DataDisponivel 105,8 D–
    to_char (F.vltitulo, '9G999G990D9999') as vltitulo, –VlTitulo 113,14 N–
    lpad ('1',6,'0') as natureza, –CdChamada 127,6 N–
    lpad (TR.cdtiporec,6,'0') as fmapag, –FormaPagamento 133,6 N–
    lpad (FB.cdbanco,3,'0')as bco, –CodigoBanco 139,3 N–
    lpad (B.codigoagencia,6,'0') as agencia, –CodigoAgencia verificar 142,6 N–
    '000001' as cdcontabc, –CodigoChamadaContaBancaria 148,6 N–
    rpad (FB.nossonumero,50,' ')NossoNumero, –Nosso Numero 154,50 C–
    '000001' as tipocb, –CodigoTipoCobranca 204,6 N–
    '00000000' as DtBaixa, –DataBaixa2 210,8 D–
    '00000000000000' as vlpg, –VlBaixadotitulo 210,14 N–
    ' ' as tpbaixa, –TipodeBaixa 232,1 C–
    rpad (F.nmobservacao,200,' ') as observacao, –Observacoes 233,200 C–
    rpad (F.idfluxo,10,' ') as idfluxo, –IdentificadorTitulo 433,10 C–
    rpad (B.codigoagencia,10,' ') as agencia, –CodigoAgencia 443,10 C–
    (FB.numeroconta,20,' ') as contabc, –NumeroContaBancaria 453,20 C–
    rpad (P.sttipopessoa,1,' '), –CategoriaPessoaTitulo 473,1 C–
    rpad (P.stpessoa,1,' '), –TipodePessoa 474,1 C–
    REPLACE(REPLACE(REPLACE(P.nrcgc_cic,'.', '' ),'/',''),'-','') as CNPJ, –CPF/CNPJ 475,18 N–
    '000000' as StAdm, –CodigoChamadaSitAdminist 493,6 N–
    to_char (F.dtexclusao,'DDMMYYYY') as DtExcl, –DataExclusaoTitulo 499,8 D–
    rpad (D.nrdocumento,50,' ') as NrDoc, –NrDocumentonaBaixa 507,50 C–
    '000000' as CCusto, –CodigoChamadaCentroCusto 557,6 N–
    ' ' as Cancel, –StatusCancelamentoBaixa 563,1 C–
    '000000' as ItemTi, –NúmerodeItensTitulo 564,6 N–
    ' ' as NrChec, –NumerodoCheque 570,20 C–
    '1' as StatusTU, –StatusIdentTituloUnico 590,1 C–
    'N' –StatusTituloPrevisao 591,1 C–

    FROM ishop.fluxo F inner Join ishop.fluxobanco FB On (F.idfluxo=FB.idfluxo)
    left join ishop.pessoas P On (P.Idpessoa=F.idpessoa)
    left join ishop.movcaix MC On (MC.idmovimentocaixa=F.idmovimentocaixa)
    left join ishop.natlanc NL On (NL.idnatlanc=F.idnatlanc)
    left join ishop.tprec TR On (TR.idtprecebimento=MC.idtprecebimento)
    left join ishop.bancocob B On (B.numeroconta=FB.numeroconta)
    left join ishop.documen D On (D.iddocumento=F.iddocumento)
    where tptitulo='R'and dtbaixa is null and dtexclusao is null
    order by f.vltitulo;

Deixe um comentário