是数字函数

时间:2016-10-13 16:09:56

标签: sql sql-server-2005

我的数据表是alpha和numeric的混合,我试图找到提取值的方法,只有它是数字

PSDcode2:
========
631302
631308
631309
631301
 STATE
 STATE
ON TWP

我的选择语句可以正常工作,但我还有更好的方法吗?谢谢

case when PS.PSDcode2 in (' STATE','ON TWP') then 'NULL' else PS.PSDcode2  end as PSDcode2,

2 个答案:

答案 0 :(得分:1)

对于SQL: -

SELECT PSDcode2 FROM [Table_Name] WHERE ISNUMERIC([PSDcode2]) = 1

检查一下: https://msdn.microsoft.com/en-us/library/ms186272.aspx

OR

Select PSDcode2 [Table_Name] WHERE PSDcode2 NOT LIKE '%[^0-9]%' AND [PSDcode2]!=''

对于Oracle: -

SELECT PSDcode2 FROM [Table_Name] WHERE REGEXP_LIKE(PSDcode2,'^[[:digit:]]+$');

答案 1 :(得分:1)

我将使用NOT LIKE方法,它适用于任何数据

Select * [Table_Name] WHERE PSDcode2 NOT LIKE '%[^0-9]%'