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