Ben*_*ier 2 arrays postgresql casting
我有以下输入:,1,2,3。我想将其转换为int[]postgres 中的。
以下查询有效:
select string_to_array('1,2,3', ',')::int[]
-- => "string_to_array" => "{1,2,3}"
Run Code Online (Sandbox Code Playgroud)
但这个没有:
select string_to_array(',1,2,3', ',')::int[]
-- => ERROR: invalid input syntax for integer: ""
Run Code Online (Sandbox Code Playgroud)
这是因为它尝试将''(第一个值)转换为整数。
如何忽略第一个,(或任何额外的,)而不出现错误?
使用array_remove的 postgres 9.3+ 解决方案(请参阅删除 pgSQL 中的数组值)
select array_remove(string_to_array(',1,2,3', ','), '')::int[];
-- array_remove
--------------
-- {1,2,3}
Run Code Online (Sandbox Code Playgroud)
,这将处理数组中任意数量的散布(例如: 1,2,,3, ,1,,,2,3,...)
| 归档时间: |
|
| 查看次数: |
4040 次 |
| 最近记录: |