當資料表包含字串型欄位,但需篩選出非數字資料(如髒資料清理、資料遷移前驗證),可利用內建 ISNUMERIC 函數以 SQL 敘述句一次完成,避免逐筆程式處理,效能極佳。
ISNUMERIC ( expression )
expression:欲檢查的運算式(欄位、變數或常數)。int:1 表示可轉換為有效數值型別(int、float、money、decimal);0 表示否。找出 目標欄位 非數字的列:
SELECT * FROM 表名 WHERE ISNUMERIC(目標欄位) = 0
ISNUMERIC 只要字串「看起來像數字」即回傳 1,包含科學標記法(如 1e4)、貨幣符號($100)等,若需嚴格限定純數字,建議搭配 TRY_CAST 或 TRY_CONVERT(SQL Server 2012+)進一步驗證。