RealWorldDevelopers
9/19/2016 - 11:33 PM

Is String a Number SQL Function

Is String a Number SQL Function

SET   QUOTED_IDENTIFIER   ON   
 GO  
 SET   ANSI_NULLS   ON   
 GO  

 ALTER    FUNCTION dbo.isReallyNumeric    
 (    
    @num VARCHAR(64)    
 )    
 RETURNS   BIT      
 BEGIN      
    IF   LEFT   (@num, 1)   =    '-'      
          SET   @num   =    SUBSTRING   (@num, 2, LEN(@num))    
 
       DECLARE   @pos TINYINT    
 
       SET   @pos   =   1   +   LEN(@num)   -   CHARINDEX(   '.'   , REVERSE(@num))    
 
    RETURN   CASE      
       WHEN   PATINDEX(   '%[^0-9.-]%'   , @num)   =   0    
           AND   @num   NOT    IN   (   '.'   ,   '-'   ,   '+'   ,   '^'   )  
          AND   LEN(@num)   >   0    
           AND   @num   NOT    LIKE    '%-%'   
          AND      
        (    
            ((@pos   =   LEN(@num)   +   1)    
               OR   @pos   =   CHARINDEX(   '.'   , @num))    
        )    
       THEN      
        1    
       ELSE      
    0    
       END      
 END    

 GO  
 SET   QUOTED_IDENTIFIER OFF  
 GO  
 SET   ANSI_NULLS   ON   
 GO