我正在尝试从存储在amazon redshift中的文本字段中的JSON blob中提取整数.我的查询看起来(大致)像:
select json_extract_path_text(json_column, 'integer_field')::int from data;
Run Code Online (Sandbox Code Playgroud)
但是,我收到一个奇怪的错误:
ERROR: Invalid digit, Value '1', Pos 0, Type: Integer
Run Code Online (Sandbox Code Playgroud)
为什么'1'是无效的数字类型?这里发生了什么?
事实证明(由于这个StackOverflow问题),当'integer_field'JSON blob中没有时,返回的值是空字符串''.出于某种原因,强制转换为整数函数不支持.奇怪的是,非空字符串''作为输入就好了,所以以下解决方法解决了这个问题:
nullif(json_extract_path_text(json_column, 'integer_field'), ' ')::int
Run Code Online (Sandbox Code Playgroud)
现在我们知道了.
| 归档时间: |
|
| 查看次数: |
1967 次 |
| 最近记录: |