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

2024-02-28

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

然而,第一个实例id将自身存储为version。例子:

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

与以下相反:

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

附加行遵循约定 id:10,版本:10-1。 ETC。

我怎样才能做到这一点?我努力了split_part()并投射为int。然而,split_part(version, "-", 2)将返回看起来像空字符串的内容。我尝试过使用COALESCE(splitpart..., '0')无济于事,因为它尝试读取字段索引 2 返回的空字段。


使用组合合并()和nullif(), https://www.postgresql.org/docs/current/static/functions-conditional.html#FUNCTIONS-COALESCE-NVL-IFNULL例子:

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)    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 split_part 后替换空字段中的值 的相关文章

随机推荐

  • Flask:获取从 Postman 发送的 gzip 文件名

    我正在从 Postman 向 Flask 端点发送 gzip 文件 我可以使用该二进制文件request data并阅读 保存 上传等 我的问题是我不知道它的名字 我怎样才能做到这一点 我的 gzip 文件名为 test file json
  • Django 管理员每次点击后都会要求登录

    我正在开发 Heroku 上托管的 Django 应用程序 我可以使用我的用户名和密码登录管理员 但是 每次单击 或几秒钟后的每次单击 它都会再次将我重定向到登录页面 并显示 next admin model添加到网址 事实上 有时它会要求
  • .NET 枚举类型实际上是可变值类型吗?

    经过反思 我惊讶地发现 保存枚举特定实例实际值的 支持 实例字段并不是枚举类型的字段 private 正如我所想的 但是public 事实并非如此readonly任何一个 IsPublic true IsInitOnly false 许多人
  • 使用 r Markdown、kable 和 kableExtra 渲染表格时出现问题

    我正在尝试使用 r markdown kable 和 kableExtra 输出乳胶表 我在表格渲染代码中遇到错误 该错误不属于 R 生成的乳胶代码的一部分 代码 outTab lt m OutTab gt kable format lat
  • 为什么我不能在重写的方法中添加 Contract.Requires ?

    我正在使用代码契约 实际上 正在学习使用它 我面临着一些奇怪的事情 我重写了在第 3 方程序集中定义的方法 我想添加一个Contract Require像这样的声明 public class MyClass MyParentClass pr
  • 如何减少 mousemove 事件导致的速度减慢?

    我正在运行一个相对简单的函数 更新span s innerHTML on mousemove 该应用程序是一个Leaflet http leaflet cloudmade com 地图 当鼠标移动时 缩放 平移和加载图块时会出现明显的滞后
  • 正则表达式“?:^”是什么意思?

    我正在查看这个子表达式 这是 JavaScript 中的 我知道 当它跟在一个字符后面时意味着 零次或一次 但不确定它在这种情况下意味着什么 当与组一起工作时 您通常有几个选项可以修改组的行为 foo default behavior ma
  • iOS 8 UITableView 旋转错误

    因此 在 XCode 6 上编译应用程序后 我注意到一个奇怪的错误 该错误仅在 iOS 8 上运行时才会发生 这UITableView采取错误的inner更新框架后的尺寸 现在我将尝试解释一下具体情况 我们有一个UITableView侧面旋
  • 在javascript中比较两个数字的问题

    我的html代码是这样的
  • Ruby on Rails 开关 [重复]

    这个问题在这里已经有答案了 有人可以提供一个关于如何在 Ruby 中使用 switch case 来表示变量的示例吗 我假设你指的是案例 时间 case a variable a variable is the variable we wa
  • C++ 构造函数初始值设定项列表抛出异常

    我对以下代码有问题 可以看到我已经在C的构造函数中处理了A的构造函数抛出的异常 为什么还要在main函数中再次捕获并处理异常呢 include
  • 如何使用tcl中的puts更改文本颜色

    我想通过使用 tcl 中的 put 命令来更改控制台中显示的文本颜色以简化调试 我看到很多文章是 abt tk 而不是 tcl 仅供参考 我在 Windows 7 上使用 Active tcl 我尝试过其他人提供的以下代码 http www
  • MySQL 5.1 中需要一个抽象触发器来更新审核日志

    我需要一种方法来检查表中已更改的任何条目并将其传递到审核日志中 它需要从表结构中抽象出来 例如 CREATE TRIGGER table1 update BEFORE UPDATE ON table1 FOR EACH ROW BEGIN
  • 我如何摆脱这个 unicode 字符?

    Any idea how to get rid of this irritating character U 0092 from a bunch of text files I ve tried all the below but it d
  • 如何迭代对象数组以进行预输入?

    http angular ui github io bootstrap http angular ui github io bootstrap 我想使用引导程序的预输入 并在对象中搜索两个不同的密钥对 如何迭代数组对象 另外有人可以解释一下
  • Git 可以忽略内容相同但时间戳更新的文件吗

    我在最近的网络项目中使用 FTP 我尝试使用 git 在 FTP 上保留所有更改的本地备份 FTP 服务器似乎无法支持 MFMT 命令 或者我犯了一些其他错误 下载的文件不保留其时间戳 当我对新下载的文件进行 git diff 时 Git
  • sudo pecl 在 os x lion 上安装 apc 错误

    我尝试在 OS X Lion 上使用 pecl 安装 APC sudo pecl install apc 并且它抱怨缺少 pcre h 文件 In file included from private tmp pear temp APC a
  • JavaScript typeof 曾经返回过“数组”吗?

    我在各种开源项目中都看到过这种习惯用法 it instanceof Array typeof it array 我知道后半部分在 ECMAScript 5 或 6 中不可能是真的 但是是否有一个实现可以从 typeof 返回 数组 或者这是
  • $this->getRequest()->isPost() 返回 false

    我正在处理一个现有代码 最后一个开发人员创建了一个表单 但没有使用 form 代码是 public function indexAction objRequest this gt getRequest var dump objRequest
  • 使用 split_part 后替换空字段中的值

    我有两列 id integer and version text 我正在尝试将字符串转换为version转换为整数 以便我可以选择 id 的最大 最新 版本 然而 第一个实例id将自身存储为version 例子 id version 10