我想将一个VARCHAR
转换为SQL中的INTEGER
,如果该字段中的某个值无法正确转换,则提供默认值。类似于:
sql> SELECT str FROM tbl; -- CREATE TABLE tbl (str VARCHAR(12), ...)
str
========
12345
-1
foo
sql> SELECT CAST((CASE WHEN ... THEN str ELSE '-9999' END) AS INTEGER) AS "int" FROM tbl;
int
========
12345
-1
-9999
我应该在省略号中放什么以获得所需的结果?
这个问题已经在SO上为许多特定的数据库进行了问答,但我想知道是否有一种更或多或少可移植的方法来实现这一点?