一個字符串轉數字的小功能

with t as 
(
  select '-' as col1   --isnumeric('-')這裏會判斷爲數字,因此不能用
  union all
  select '1' as col1 
  union all 
  select '2' as col1 
  union all 
  select '3.4' as col1 
  union all 
  select 's' as col1 
)
select col1, convert(numeric(10,4), 
--                case WHEN isnumeric(col1)=1 then col1 else 0*1.0 end 
                case WHEN PATINDEX('%[^0-9|.|-|+]%',col1)=0
                  THEN col1 
                  ELSE 0*1.0
                end
                ) 
        as cc from t
相關文章
相關標籤/搜索