Função isdigit no SQL Server
Esta função escalar excelente para testar se um derterminado campo tem strings, letras ou apenas números em SQL Server.
Retorna 1 para verdadeiro caso seja apenas números e 0 para falso, caso encontre textos dentro do campo.
Espero ter ajudado.
Segue fonte abaixo:
--
-- Nome Artefato/Programa..: sp_isdigit.sql
-- Autor(es)...............: Emerson Hermann (emersonhermann [at] gmail.com) O Peregrino (http://www.emersonhermann.blogspot.com) adaptado de http://www.simple-talk.com/sql/t-sql-programming/sql-string-user-function-workbench-part-1/#eighth
-- Data Inicio ............: 08/07/2011
-- Data Atualizacao........: 05/08/2011
-- Versao..................: 0.02
-- Compilador/Interpretador: T-SQL (Transact SQL)
-- Sistemas Operacionais...: Windows
-- SGBD....................: MS SQL Server 2008
-- Kernel..................: Nao informado!
-- Finalidade..............: store procedure (function) para testa se um campo é digito ou não, retorna 1 para verdadeiro e 0 para falso
-- OBS.....................:
--
IF EXISTS (
SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[sp_isdigit]')
AND type IN (N'FN')
)
DROP FUNCTION sp_isdigit
GO
CREATE FUNCTION sp_isdigit (@string varchar(max))
RETURNS INT
AS
BEGIN
RETURN
(
SELECT CASE WHEN PATINDEX('%[^0-9]%', @string) > 0 THEN
0
ELSE
1
END AS sp_isdigit
)
END;
GO
/*
Exemplo:
SELECT dbo.sp_isdigit('ISSO É UM VALOR NÚMERICO?'); -- 0
SELECT dbo.sp_isdigit('3000'); --retorno 1
SELECT dbo.sp_isdigit('2700.00'); --retorno 0
*/
Nenhum comentário:
Postar um comentário