Inicial > SQL Server > IsNumeric

IsNumeric

Cuidado ao utilizar a função IsNumeric para verificar se valores String são realmente números. Segue um exemplo de como a função pode retornar alguns valores não desejados.

 

— Cria uma tabela de teste

CREATE TABLE #Teste (ID Int Identity(1,1) Primary Key,

                    Numero VarChar(200))

 

INSERT INTO #Teste VALUES(‘$55.69’)

INSERT INTO #Teste VALUES(‘1.4e35’)

INSERT INTO #Teste VALUES(‘2d4’)

INSERT INTO #Teste VALUES(‘3.7’)

INSERT INTO #Teste VALUES(‘412’)

INSERT INTO #Teste VALUES(‘0e2155’)

INSERT INTO #Teste VALUES(CHAR(9)) –Tab

GO

 

SELECT * FROM #Teste

— Cuidado ao usar IsNumeric com colunas VarChar

SELECT ISNUMERIC(Numero) [Numeric ?],

       ISNUMERIC(Numero + ‘e0’) AS [Numeric], Numero AS Valor

FROM #Teste

GO

 

— Criei uma função chamada IsNumber que valida o valor utilizando o ‘e0’

CREATE FUNCTION dbo.IsNumber(@Value VarChar(200))

RETURNS BIT

AS

BEGIN

  RETURN (SELECT IsNumeric(@Value + ‘e0’))

END

GO

–Ex de uso da função

SELECT dbo.IsNumber(Numero) AS [Numeric], Numero AS Valor

FROM #Teste

 

DROP TABLE #Teste

 

Fonte – http://sqlblog.com/blogs/denis_gobo/archive/2007/08/23/2311.aspx

Categorias:SQL Server
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: