Solved

ISNUMERIC() equivalent?

Posted on 2001-09-13
4
1,143 Views
Last Modified: 2012-05-04
Don't ask me why, but a colleague has a need for the equivalent of MS SQL Server's ISNUMERIC() function in Transact SQL. Is there a stored proc somewhere already that can accomplish the feat pretty quickly?

I'd search PAQ, but it doesn't seem to be working!
0
Comment
Question by:dwalex
4 Comments
 
LVL 5

Expert Comment

by:amitpagarwal
ID: 6481657
I have written the following SP for sybase to check if a given string is Numeric. It returns 0 if numeric else -1.

You can modify it to have print statements also.

Thanks.

  create proc isNumber @value varchar(15)
as
begin
 declare @number_count int
 declare @decimal_count int
 select  @decimal_count = 0
 select  @number_count = char_length(@value)
  while (@number_count > 0)
   begin
    if(substring(@value,@number_count,1)
  IN ('0','1','2','3','4','5','6','7','8','9','.'))
     begin
      select @number_count = @number_count - 1
      if(substring(@value,@number_count,1) = '.')
       begin
        select @decimal_count = @decimal_count + 1
        if(@decimal_count > 1)
 
         return -1
       end
     end
   else return -1
  end
 return 0
end
0
 
LVL 3

Accepted Solution

by:
mathavra earned 100 total points
ID: 6488444
Here is another method I have used

select patindex('%[^0-9]%', "123R23")
go
------------
           4

will return non-zero value if any of character is non-numeric. Else, it will return zero.

select patindex('%[^0-9]%', "123023")
go
------------
           0

You can use this function anywhere to check whether it returns zero or non-zero.

Hope this helps!

Mathav
0
 
LVL 10

Expert Comment

by:bret
ID: 6488861
Neither of these techniques work for negative numbers, or for numbers in scientific notation (-3.456e5)

-bret
0
 
LVL 1

Author Comment

by:dwalex
ID: 6489244
That's the kind of quick answer I was after. As bret says, it's not perfect, but for a financial application, it helps alot.
0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
sybase license issue 6 536
Dynamically Growing Sybase Database 3 444
Sybase - CronJob schedule 2 598
SQL Syntax Select Top in each group 2 186
If you thought ransomware was bad, think again! Doxware has the potential to be even more damaging.
This article outlines why you need to choose a backup solution that protects your entire environment – including your VMware ESXi and Microsoft Hyper-V virtualization hosts – not just your virtual machines.
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question