gpt4 book ai didi

sql - 使用 split_part 后替换空字段中的值

转载 作者:行者123 更新时间:2023-11-29 11:28:23 26 4
gpt4 key购买 nike

我有两列,id integerversion text。我正在尝试将 version 中的字符串转换为整数,以便我可以选择最大(最新)版本的 id。

但是,id 的第一个实例将其自身存储为 version。示例:

id | version
---+--------
10 | '10'

相对于:

id | version
---+--------
10 | '10-0'

其他行遵循约定 ID:10,版本:10-1。等等

我怎样才能做到这一点?我试过 split_part() 并转换为 int。但是,split_part(version, "-", 2) 将返回看起来像空字符串的内容。我已尝试使用 COALESCE(splitpart..., '0') 运行它但无济于事,因为它试图读取字段索引 2 返回的空字段。

最佳答案

使用 coalesce() and nullif(), 的组合示例:

with my_table(version) as (
values
('10'), ('10-1'), ('10-2')
)

select
version,
split_part(version, '-', 1)::int as major,
coalesce(nullif(split_part(version, '-', 2), ''), '0')::int as minor
from my_table

version | major | minor
---------+-------+-------
10 | 10 | 0
10-1 | 10 | 1
10-2 | 10 | 2
(3 rows)

关于sql - 使用 split_part 后替换空字段中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45766644/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com