Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Halison

Tirar caracteres especiais em um campo

Recommended Posts

Bom dia!

 

Gostaria de um exemplo da função replace para tira carcteres como: ponto e traço nesse select, como podem ver já estou usando o replace em alguns campos que possuem o ponto(.), mas não sei utilizar quando o campo vem com ponto e traço.

Ex:

DESTINATARIO_IE

----------------

06.694.662-0

12.114.051-2

06.958.971-2

 

SELECT A.NF_SAIDA,

A.TIPO_FATURAMENTO,

A.NF_SAIDA AS NF_E_NUMERO,

'1' AS SERIE_NF,

A.EMISSAO, A.DATA_SAIDA,

'S' AS IDENTIFICACAO_TIPO,

TBEMITENTE.CGC_CPF AS EMITENTE_CNPJ,

TBEMITENTE.RG_IE AS EMITENTE_IE,

TBEMITENTE.RAZAO_SOCIAL AS EMITENTE_RAZAO,

TBEMITENTE.NOME_CLIFOR AS EMITENTE_FANTASIA,

REPLACE (TBEMITENTE.TELEFONE1,'-','') AS EMITENTE_FONE,

TBEMITENTE.CEP AS EMITENTE_CEP,

TBEMITENTE.ENDERECO AS EMITENTE_LOGRADOURO,

TBEMITENTE.BAIRRO AS EMITENTE_BAIRRO,

TBEMITENTE.COD_MUNICIPIO_IBGE AS EMITENTE_CODIGOMUN,

TBEMITENTE.DESC_MUNICIPIO AS EMITENTE_MUNICIPIO,

TBEMITENTE.UF AS EMITENTE_UF,

A.NOME_CLIFOR,

TBDESTINATARIO.CGC_CPF AS DESTINATARIO_CNPJ,

TBDESTINATARIO.RG_IE AS DESTINATARIO_IE, --campo a ser tirado o ponto e o traço

TBDESTINATARIO.RAZAO_SOCIAL AS DESTINATARIO_RAZAO,

TBDESTINATARIO.NOME_CLIFOR AS DESTINATARIO_FANTASIA,

REPLACE(TBDESTINATARIO.TELEFONE1,'-','') AS DESTINATARIO_FONE,

TBDESTINATARIO.CEP AS DESTINATARIO_CEP,

TBDESTINATARIO.ENDERECO AS DESTINATARIO_LOGRADOURO,

TBDESTINATARIO.BAIRRO AS DESTINATARIO_BAIRRO,

TBDESTINATARIO.COD_MUNICIPIO_IBGE AS DESTINATARIO_CODIGOMUN,

TBDESTINATARIO.DESC_MUNICIPIO AS DESTINATARIO_MUNICIPIO,

TBDESTINATARIO.UF AS DESTINATARIO_UF,

A.ICMS_BASE,

A.ICMS,

A.VALOR_TOTAL AS VALORESTOTAIS_VALORNOTA,

SUM (G.MPADRAO_VALOR_ITEM) AS VALORESTOTAIS_VALORPRODUTO,

'000001' AS FILIALCOD,

(SELECT F.OBS FROM FATURAMENTO F WHERE F.NF_SAIDA = A.NF_SAIDA) AS OBS,

A.TIPO_VOLUME, --ESPECIE

A.VOLUMES, --N_VOLUME

A.PESO_LIQUIDO,

A.PESO_BRUTO,

'' AS BASE_ICMS_ST,

'' AS VALOR_ICMS_ST,

A.VALOR_FRETE,

A.SEGURO,

A.DESCONTO,

A.VALOR_ADICIONAL,

A.IPI_VALOR,

C.TRANSPORTADORA, C.CODIGO_TRANSP, C.CGC,

REPLACE (C.ENDERECO,',',''),

C.CIDADE, C.UF,

REPLACE(C.INSCRICAO,'-','') AS INSCRICAO,

--REPLACE(F.CLASSIF_FISCAL,'.','') as CLASSIF_FISCAL,

A.TIPO_FRETE

FROM FATURAMENTO A,

FATURAMENTO_ITEM G,

TRANSPORTADORAS C,

(SELECT B.*, A.* FROM CADASTRO_CLI_FOR A

JOIN LCF_LX_MUNICIPIO B ON A.CIDADE=B.DESC_MUNICIPIO

WHERE clifor='000001') AS TBEMITENTE,

(SELECT B.*, A.* FROM CADASTRO_CLI_FOR A

JOIN LCF_LX_MUNICIPIO B ON A.CIDADE=B.DESC_MUNICIPIO

JOIN LCF_LX_UF C ON C.UF=A.UF AND C.ID_UF=B.ID_UF

) AS TBDESTINATARIO

WHERE A.NOME_CLIFOR = TBDESTINATARIO.NOME_CLIFOR

AND A.TRANSPORTADORA = C.TRANSPORTADORA

AND '000001' = TBEMITENTE.COD_CLIFOR

AND A.NF_SAIDA = A.NF_SAIDA

AND G.NF_SAIDA = A.NF_SAIDA

 

Agradeço a desde já a quem puder me ajudar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Halison,

 

basta utilizar outro replace externo, você pode utilizar quantos replace's você necessitar

select replace(replace('06.958.971-2','-',''),'.','') 

retorna:

069589712

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Halison

 

vamos ver se entendi.

 

declare @numero varchar(50)
set @numero = '-920,00'

-- você precisa da saida assim??? 92000
-- se SIM, você dar um replace em outro replace -sei que vao me xingar por fazer isso, que apostar hehehee

select replace ( replace(@numero, '.',''),  '-','')

 

Note que o replace substitui um caracter por outro, o primeiro troca o traço por nada, e o segundo o ponto por nada. entendeu???

 

Existem funções que fazem esta troca, ou você pode criar uma. Qual a versão do SQL?

 

abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Halison,

 

basta utilizar outro replace externo, você pode utilizar quantos replace's você necessitar

select replace(replace('06.958.971-2','-',''),'.','') 

retorna:

 

069589712

 

 

eriva_br

 

Obrigado pela dica!

 

Halison

 

vamos ver se entendi.

 

declare @numero varchar(50)[/sub][/sup][/sub]
set @numero = '-920,00'

-- você precisa da saida assim??? 92000
-- se SIM, você dar um replace em outro replace -sei que vao me xingar por fazer isso, que apostar hehehee

select replace ( replace(@numero, '.',''),  '-','')

 

 

 

Note que o replace substitui um caracter por outro, o primeiro troca o traço por nada, e o segundo o ponto por nada. entendeu???

 

Existem funções que fazem esta troca, ou você pode criar uma. Qual a versão do SQL?

 

abçs

 

 

A.Jr

 

Utilizei um replace dentro de outro replace, deu certo. Só a nivel de curiosidade e de ter a oprotunidade de adiquirir novos conhecimentos, pois sou iniciante. Quais as outras funções que fazem esssa troca e como faço para criar uma, minha versão é a SQL Server 2005 Express Edition

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.