none
Consulta sql eliminar registros que não são numeros RRS feed

  • Pergunta

  • Boa tarde como elimino de um select registros que não são números?

    Exemplo:

     

    001

    002

    aaa

     

    o aaa eliminado

     

    Abraço

    segunda-feira, 5 de setembro de 2011 17:47

Respostas

  • Brown,

     

    Segue exemplo:

    DECLARE @t1 TABLE(Registro VARCHAR(100))

    INSERT INTO @t1 VALUES

    ('123'),

    ('4145514'),

    ('472392a'),

    ('aaa')

     

    SELECT Registro

    FROM @t1

    WHERE Registro LIKE '%[0-9]%'

    AND Registro NOT LIKE '%[a-z]%'

    AND Registro NOT LIKE '%[A-Z]%'


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Sugerido como Resposta Eder Costa quinta-feira, 15 de setembro de 2011 12:30
    • Marcado como Resposta Brown11 quinta-feira, 15 de setembro de 2011 12:59
    segunda-feira, 5 de setembro de 2011 17:54
    Moderador
  • Brown, não cheguei a testar a resposta do Fabrizzio. Faça isso por favor.

    Porém, de antemão, lhe informo para tomar cuidado com a função IsNumeric.

    A dica passada pelo Cláudio funciona muito bem dentro do cenário de registros que você passou. Porém, muitos não se atentam para o fato de que IsNumeric também retorna 1 (True) para registros que contenham caracteres considerados como numéricos. E nem sempre isso é desejável.

    Por exemplo, se você tiver registros com estes caracteres '-500', '+10' ou '$40', eles passarão pelo "crivo" da IsNumeric. Atente-se a isso. Veja se é realmente o que você precisa.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Eder Costa quinta-feira, 15 de setembro de 2011 12:31
    • Marcado como Resposta Brown11 quinta-feira, 15 de setembro de 2011 12:59
    sexta-feira, 9 de setembro de 2011 02:46
    Moderador

Todas as Respostas

  • Brown,

     

    Segue exemplo:

    DECLARE @t1 TABLE(Registro VARCHAR(100))

    INSERT INTO @t1 VALUES

    ('123'),

    ('4145514'),

    ('472392a'),

    ('aaa')

     

    SELECT Registro

    FROM @t1

    WHERE Registro LIKE '%[0-9]%'

    AND Registro NOT LIKE '%[a-z]%'

    AND Registro NOT LIKE '%[A-Z]%'


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    • Sugerido como Resposta Eder Costa quinta-feira, 15 de setembro de 2011 12:30
    • Marcado como Resposta Brown11 quinta-feira, 15 de setembro de 2011 12:59
    segunda-feira, 5 de setembro de 2011 17:54
    Moderador
  • ainda não testei

    daqui a pouco coloco o resultado

    quinta-feira, 8 de setembro de 2011 15:36
  • Uma alternativa:

     

    SELECT *
    FROM Tabela
    WHERE ISNUMERIC(Campo) = 1
    


    quinta-feira, 8 de setembro de 2011 15:48
  • Brown, não cheguei a testar a resposta do Fabrizzio. Faça isso por favor.

    Porém, de antemão, lhe informo para tomar cuidado com a função IsNumeric.

    A dica passada pelo Cláudio funciona muito bem dentro do cenário de registros que você passou. Porém, muitos não se atentam para o fato de que IsNumeric também retorna 1 (True) para registros que contenham caracteres considerados como numéricos. E nem sempre isso é desejável.

    Por exemplo, se você tiver registros com estes caracteres '-500', '+10' ou '$40', eles passarão pelo "crivo" da IsNumeric. Atente-se a isso. Veja se é realmente o que você precisa.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Eder Costa quinta-feira, 15 de setembro de 2011 12:31
    • Marcado como Resposta Brown11 quinta-feira, 15 de setembro de 2011 12:59
    sexta-feira, 9 de setembro de 2011 02:46
    Moderador
  • Entendi bem

    Farei os teste e postarei aqui em breve o resultado

     

    abraço a todos

    domingo, 11 de setembro de 2011 18:13
  • Cara desculpe a demora, mas o script do Fabrizzio funcionou mto bem!!!

     

    Atendeu o que eu queria

     

    abraço

    quinta-feira, 15 de setembro de 2011 12:58