我要选择的是被定义为一列VARCHAR,作为INTEGER这样的:
SELECT ID, CAST(Col1 as INT) as MyOutput FROM MyTABLE
Run Code Online (Sandbox Code Playgroud)
问题是当列具有无效格式(无法转换为整数)时我想将它们设置为NULL.有没有办法在DB2中执行此操作?
实现此目的的一种方法是编写自己的转换函数来处理格式异常,例如
create or replace function to_int_safe (str varchar(20))
returns int
deterministic
no external action contains sql
begin
declare continue handler for sqlstate '22018' -- on conversion error
return null;
return cast(str as int);
end
Run Code Online (Sandbox Code Playgroud)
然后在您的查询中使用它:
SELECT ID, to_int_safe(Col1) as MyOutput FROM MyTABLE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7166 次 |
| 最近记录: |