selecionar somente registros com numeros
Ola Galera.
Alguém saberia me dizer se tem como atraves
de um select retornar os registros q em um determinado
campo só tenha numeros.
Exemplo:
select campo from tabela
resultado :
1 - 00068744
2 - 00068744B
3 - 00069745
3 - 03888569745
Ou seja se tiver caracter string nao me retorne no select
retornaria somente.
1 - 00068744
3 - 00069745
3 - 03888569745
Se alguém souber .
Valeu.
Alguém saberia me dizer se tem como atraves
de um select retornar os registros q em um determinado
campo só tenha numeros.
Exemplo:
select campo from tabela
resultado :
1 - 00068744
2 - 00068744B
3 - 00069745
3 - 03888569745
Ou seja se tiver caracter string nao me retorne no select
retornaria somente.
1 - 00068744
3 - 00069745
3 - 03888569745
Se alguém souber .
Valeu.
Eduardo.padilha
Curtidas 0
Respostas
Emerson Nascimento
10/03/2005
tente assim:
select campo from tabela
where isnumeric(campo)=1
demora um pouco, mas acho que resolve...
select campo from tabela
where isnumeric(campo)=1
demora um pouco, mas acho que resolve...
GOSTEI 0
Eduardo.padilha
10/03/2005
Meu caro amigo emerson.en
Funcionou.....
Mas uma coisa teria como checar na mesma
Tabela os registros q tem caracter e o outro q nao tem ?
retornar via select ?
Ex:
1 - 00068744
2 - 00068744B
3 - 6402A
4 - 6402
E deletar somente os q tem Letras no caso do exemplo o registro 2 e 3. ?
Obrigado .
Funcionou.....
Mas uma coisa teria como checar na mesma
Tabela os registros q tem caracter e o outro q nao tem ?
retornar via select ?
Ex:
1 - 00068744
2 - 00068744B
3 - 6402A
4 - 6402
E deletar somente os q tem Letras no caso do exemplo o registro 2 e 3. ?
Obrigado .
GOSTEI 0
Emerson Nascimento
10/03/2005
creio que já foi mostrado:
select campo from tabela
where isnumeric(campo)=1 // são numéricos
select campo from tabela
where isnumeric(campo)=0 // não são numéricos
delete from tabela
where isnumeric(campo)=0 // não são numéricos
select campo from tabela
where isnumeric(campo)=1 // são numéricos
select campo from tabela
where isnumeric(campo)=0 // não são numéricos
delete from tabela
where isnumeric(campo)=0 // não são numéricos
GOSTEI 0
Eduardo.padilha
10/03/2005
Eu entendi..... 1 numericos e 0 nao numericos.
O meu problema eh q preciso checar se o registro existe.
ou seja se ele existe numerico e nao numerico . Veja o registro
5 e o 9 esse nao poderia ser deletado pq o mesmo nao existe ´o nao numerico´
para ele, ou seja preciso fazer uma comparacao entre os registros.
Como se fosse registros duplicados.
Ex:
1 - 00068744
2 - 00068744B
3 - 6402A
4 - 6402
5 - 66445
6 - 88774F
7 - 88774
8 - 999A
9 - 9997
O meu problema eh q preciso checar se o registro existe.
ou seja se ele existe numerico e nao numerico . Veja o registro
5 e o 9 esse nao poderia ser deletado pq o mesmo nao existe ´o nao numerico´
para ele, ou seja preciso fazer uma comparacao entre os registros.
Como se fosse registros duplicados.
Ex:
1 - 00068744
2 - 00068744B
3 - 6402A
4 - 6402
5 - 66445
6 - 88774F
7 - 88774
8 - 999A
9 - 9997
GOSTEI 0
Emerson Nascimento
10/03/2005
agora entendi...
só uma pergunta: a letra seria sempre o último caractere?
só uma pergunta: a letra seria sempre o último caractere?
GOSTEI 0
Eduardo.padilha
10/03/2005
sim, mas pode ser letra ou / ou .
GOSTEI 0
Emerson Nascimento
10/03/2005
tente isso:
assim só seriam retornados os registros que NÃO tem o correspondente alfanumérico.
select campo from tabela where not campo in (select substring(campo,1,len(campo)-1) from tabela where isnumeric(campo)=0)
assim só seriam retornados os registros que NÃO tem o correspondente alfanumérico.
GOSTEI 0
Eduardo.padilha
10/03/2005
Emerson ?
Para q seria o parametro -1 ?
Se eu o deixar aparece o seguinte erro:
´Invalid length parameter passed to the substring function.´
Para q seria o parametro -1 ?
Se eu o deixar aparece o seguinte erro:
´Invalid length parameter passed to the substring function.´
GOSTEI 0
Emerson Nascimento
10/03/2005
é o seguinte: aquela subselect irá retornar todos os códigos que têm a letra, mas sem a letra.
ele irá buscar por 00889A, mas irá retornar apenas o 00889.
a função substring() é a responsável por esse retorno, onde ela irá buscar a string, da posição 1 até o tamanho da string - 1.
exemplificando:
supondo que a string seja 00889A, sabemos que ela tem tamanho 6. mas eu preciso retirar apenas os cinco primeiros, por isso o len()-1, que faz exatamente isso: conta quantos caracteres há na string e retorna essa quantidade subtraindo 1.
ilustrando:
substring(string,1,len(string)-1) ->
substring(´00889A´,1,len(´00889A´)-1) ->
substring(´00889A´,1,6-1) ->
substring(´00889A´,1,5) = ´00889´
talvez o erro tenha acontecido por ter algum valor com apenas 1 caractere. tente alterar a instrução para:
ele irá buscar por 00889A, mas irá retornar apenas o 00889.
a função substring() é a responsável por esse retorno, onde ela irá buscar a string, da posição 1 até o tamanho da string - 1.
exemplificando:
supondo que a string seja 00889A, sabemos que ela tem tamanho 6. mas eu preciso retirar apenas os cinco primeiros, por isso o len()-1, que faz exatamente isso: conta quantos caracteres há na string e retorna essa quantidade subtraindo 1.
ilustrando:
substring(string,1,len(string)-1) ->
substring(´00889A´,1,len(´00889A´)-1) ->
substring(´00889A´,1,6-1) ->
substring(´00889A´,1,5) = ´00889´
talvez o erro tenha acontecido por ter algum valor com apenas 1 caractere. tente alterar a instrução para:
select campo from tabela where not campo in (select substring(campo,1,len(campo)-1) from tabela where len(campo)>1 and isnumeric(campo)=0)
GOSTEI 0
Eduardo.padilha
10/03/2005
Entendi a Lógica e aliás muito bem montada.
Mas acho q eh um pouquinho mas complexo, tenho certeza q vc me ajudará.
O erro continua.
´Invalid length parameter passed to the substring function.´
Detalhe em alguns registros tenho o conteudo q eh somente caracter ou numerico de 1.
Entao o q eu precisaria .
Registro 1 e 2 (Existe numerico e caracter ? sim) R: Excluir.
Registro 3 - Nao fazer nada pq nao existe um igual para ele com caracter.
Registro 4 - Nao fazer nada pq nao existe um igual para ele. Ex 7CA
Registro 5 - Nao fazer nada pq nao existe um igual para ele com caracter.
Registro 6 - Nao fazer nada
Registro 7 e 8 (Existe numerico e caracter Excluir.
Registro 9 e 10 (Existe numerico e caracter Excluir.
Exemplo:
1 - 855548A
2 - 855548
3 - 7
4 - CA
5 - 7741
6 - Informar
7 - 88744
8 - 88744G
9 - 65
10- 65K
Select num_nota_fiscal
from Fanftit0
where not num_nota_fiscal in
(select substring(num_nota_fiscal,1,len(num_nota_fiscal)-1)
from Fanftit0
where len(num_nota_fiscal)>1 and isnumeric(num_nota_fiscal)=0)
Mas acho q eh um pouquinho mas complexo, tenho certeza q vc me ajudará.
O erro continua.
´Invalid length parameter passed to the substring function.´
Detalhe em alguns registros tenho o conteudo q eh somente caracter ou numerico de 1.
Entao o q eu precisaria .
Registro 1 e 2 (Existe numerico e caracter ? sim) R: Excluir.
Registro 3 - Nao fazer nada pq nao existe um igual para ele com caracter.
Registro 4 - Nao fazer nada pq nao existe um igual para ele. Ex 7CA
Registro 5 - Nao fazer nada pq nao existe um igual para ele com caracter.
Registro 6 - Nao fazer nada
Registro 7 e 8 (Existe numerico e caracter Excluir.
Registro 9 e 10 (Existe numerico e caracter Excluir.
Exemplo:
1 - 855548A
2 - 855548
3 - 7
4 - CA
5 - 7741
6 - Informar
7 - 88744
8 - 88744G
9 - 65
10- 65K
Select num_nota_fiscal
from Fanftit0
where not num_nota_fiscal in
(select substring(num_nota_fiscal,1,len(num_nota_fiscal)-1)
from Fanftit0
where len(num_nota_fiscal)>1 and isnumeric(num_nota_fiscal)=0)
GOSTEI 0
Emerson Nascimento
10/03/2005
exibe todos
exibe os registros que devem ser mantidos:
exibe os registros que devem ser excluídos:
Select num_nota_fiscal from Fanftit0
exibe os registros que devem ser mantidos:
Select num_nota_fiscal from Fanftit0 where not num_nota_fiscal in (select substring(num_nota_fiscal,1,len(num_nota_fiscal)-1) from Fanftit0 where len(num_nota_fiscal)>1 and isnumeric(num_nota_fiscal)=0)
exibe os registros que devem ser excluídos:
Select num_nota_fiscal from Fanftit0 where num_nota_fiscal in (select substring(num_nota_fiscal,1,len(num_nota_fiscal)-1) from Fanftit0 where len(num_nota_fiscal)>1 and isnumeric(num_nota_fiscal)=0)
GOSTEI 0
Eduardo.padilha
10/03/2005
Legal....
Testei agora esta certinho....
Muito Obrigado.
Valeu.
Testei agora esta certinho....
Muito Obrigado.
Valeu.
GOSTEI 0