我有一个包含这个值的表:
ID VALUE ----------------------- 23559 200 23562 -1 & {14376}#-1
我想做一个选择,如果我不能转换为数字设置NULL.
解决方法
我通常使用翻译,因为这是一个奇怪的角落案例:
SELECT CASE WHEN TRIM(TRANSLATE(COLUMN_NAME,'1234567890',' ')) IS NULL THEN NULL ELSE COLUMN_NAME END AS "NUMERIC_COLUMN" FROM TABLE_NAME;
如果有必要,可以将其转变为程序,但我不确定在性能方面会有多少好处.