我的数据表是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,
答案 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]%'