Cópia de dados de uma coluna via sql

Firebird

28/05/2019

Quero copiar 9 posições de uma coluna com 10 caracteres para outra coluna com 9. Qual a sintaxe correta com o comando update do SQL?
Josafar Silva

Josafar Silva

Curtidas 0

Respostas

Fabiano Carvalho

Fabiano Carvalho

28/05/2019

Qual o banco de dados? substring pode te ajudar;
GOSTEI 0
Josafar Silva

Josafar Silva

28/05/2019

Qual o banco de dados? substring pode te ajudar;

O BD é Firebird
GOSTEI 0
Renato Dias

Renato Dias

28/05/2019

select substring((nome do campo) from (posição inicial) for (tamanho)) from (nome da tabela)

posição inicial e tamanho tem que ser números inteiros
GOSTEI 0
Josafar Silva

Josafar Silva

28/05/2019

select substring((nome do campo) from (posição inicial) for (tamanho)) from (nome da tabela)

posição inicial e tamanho tem que ser números inteiros


Caro Renato: desculpe minha falta de conhecimento. Nessa sintaxe eu consigo selecionar a quantidade de caracteres que eu quiser de determinada coluna (campo). Mas como usar isto num comando update do sql? Por exemplo: update (tabela) set (nome do campo que vai receber os caracteres) = ......

Ou seria o comando sugerido por você completado com outro comando para o campo que vai receber o substring? Como eu escrevi no tópico:

Quero copiar 9 posições de uma coluna com 10 caracteres para outra coluna com 9. Qual a sintaxe correta com o comando update do SQL
GOSTEI 0
Renato Dias

Renato Dias

28/05/2019

Josafar você vai usar da mesma forma que no exemplo do select. Substring é uma função. O update pode ser algo parecido com isso:
update (nome da tabela) set (nome do campo com 9 caracteres) = substring((nome do campo com 10 caracteres) from 1 to 9) where (escrever critério se houver)
GOSTEI 0
Renato Dias

Renato Dias

28/05/2019

desculpe, corrigindo o exemplo (escrevi "to" ao invés de "for"):
update (nome da tabela) set (nome do campo com 9 caracteres) = substring((nome do campo com 10 caracteres) from 1 for 9) where (escrever critério se houver)
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

28/05/2019


update tabela set campodestino = left(campoorigem, tamanhodesejado) where condicao


GOSTEI 0
Josafar Silva

Josafar Silva

28/05/2019


update tabela set campodestino = left(campoorigem, tamanhodesejado) where condicao



Caro Renato, abaixo a sintaxe que utilizei, com sua orientação, e que funcionou corretamente.

update tabcli set cep2 = substring((cepc) from (1) for (9));

Obrigado.
GOSTEI 0
POSTAR