Table1
id
01
wire
02
steve
ram123
03
....
from the table1 i want to select only numeric values, It should not display alphanumeric values like (ram123)
Expected Output
01
02
03
....
How to make a query for this condition
Table1
id
01
wire
02
steve
ram123
03
....
from the table1 i want to select only numeric values, It should not display alphanumeric values like (ram123)
Expected Output
01
02
03
....
How to make a query for this condition
SELECT * FROM @Table
WHERE Col NOT LIKE '%[^0-9]%'
Just want to note that IsNumeric() has some limitations. For example all of the below will return 1.
SELECT ISNUMERIC(' - ')
SELECT ISNUMERIC(' , ')
SELECT ISNUMERIC('$')
SELECT ISNUMERIC('10.5e-1')
SELECT ISNUMERIC('$12.09')
So if you only looking to select numbers ONLY, then something like this could work:
create function [dbo].[IsNumbersOnly](@strSrc as varchar(255))
returns tinyint
as
begin
return isnumeric(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
@strSrc, '\', 'x'), '-', 'x'), ',', 'x'), '+', 'x'), '$', 'x'), '.', 'x'), 'e', 'x'), 'E', 'x'),
char(9), 'x'), char(0), 'x'))
end
I tried the code above (ISNUMERIC()
) and it somehow doesn't work in Oracle SQL.
But I found a working solution for Oracle SQL:
SELECT column1
FROM Table
WHERE regexp_like( column1, '^[[:digit:]]*$');
SELECT column1 FROM table where ISNUMERIC(column1) = 1
You can use translate and replace function together. first translate the numbers to 0 then replace them with null and return only null values can solve the problem.
select column from table where replace(translate(column,'0123456789','0000000000'),'0','') is null
© 2022 - 2024 — McMap. All rights reserved.