我想投一个 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 上提出并回答了这个问题,但我想知道是否有一种或多或少的可移植方式来实现这一目标?
最佳答案
鉴于 INTEGER(32 位?64 位?)可接受的值范围因实现而异,没有非供应商特定的方法来做到这一点。
关于sql - 可移植地确定字符串是否可转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2065788/