SQL query to find rows that contain only numerical data
Let me explain the scenario mentioned in one of the sql server interview. We have the following table.
Write a SQL query to retrieve rows that contain only numerical data. The output of the query should be as shown below.
SQL Script to create the TestTable
Create Table TestTable
(
ID int identity primary key,
Value nvarchar(50)
)
Insert into TestTable values (‘123’)
Insert into TestTable values (‘ABC’)
Insert into TestTable values (‘DEF’)
Insert into TestTable values (‘901’)
Insert into TestTable values (‘JKL’)
This is very easy to achieve. If you have used ISNUMERIC() function in SQL Server, then you already know the answer. Here is the query
Select Value from TestTable Where ISNUMERIC(Value) = 1
ISNUMERIC function returns 1 when the input expression evaluates to a valid numeric data type, otherwise it returns 0. For the list of all valid numeric data types in SQL Server please visit the following MSDN link.
http://technet.microsoft.com/en-us/library/ms186272(v=sql.110).aspx