PostgreSQL截取字符串到指定字符位置详细示例

 更新时间:2023年07月21日 11:50:32   作者:若小鱼  
这篇文章主要给大家介绍了关于PostgreSQL截取字符串到指定字符位置的相关资料,PostgreSQL数据库拼接字符串函数是一种非常重要的函数,使用它可以方便地将不同的字符串进行拼接操作,从而得到我们需要的结果,需要的朋友可以参考下

今天在做PG数据到HIVE的数据交换任务时,因为某个字段在PG中是Varchar类型,hive是bigint,而偏偏PG 中该字段的存储值都被加了小数点位,导致字段类型转换失败。

现在就需要将字符串中小数点后的部分给截掉。

开始时尝试使用的是CHARINDEX来获取小数点的位置,然后使用substring函数截取该位置之前的数值。

select CAST(SUBSTRING(sal_qty, 1 , CHARINDEX('.',sal_qty)-1)as bigint)

但是运行时发现PG中没有CHARINDEX函数。

SQL 错误 [42883]: ERROR: function charindex(unknown, character varying) does not exist  建议:No function matches the given name and argument types. You might need to add explicit type casts.

在官方文档中查找相应的替换函数

https://www.postgresql.org/docs/current/functions-string.html

找到一个position函数

position ( substring text IN string text ) → integer
Returns first starting index of the specified substring within string, or zero if it's not present.
position('om' in 'Thomas') → 3

测试一下

select sal_qty, cast(SUBSTRING(sal_qty, 1 , position ('.'  in sal_qty) - 1) as bigint) as sal_qty_int from table_test

返回结果,符合预期。

另外还可以尝试使用strpos函数,功能和position相同,但要注意参数位置

strpos ( string text, substring text ) → integer
Returns first starting index of the specified substring within string, or zero if it's not present. (Same as position(substring in string), but note the reversed argument order.)
strpos('high', 'ig') → 2
select sal_qty, cast(SUBSTRING(sal_qty, 1 ,  strpos(sal_qty,'.')-1)as bigint) as sal_qty_int from table_test

 总结

到此这篇关于PostgreSQL截取字符串到指定字符位置的文章就介绍到这了,更多相关PGSQL截取字符串到指定位置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Postgresql 实现查询一个表/所有表的所有列名

    Postgresql 实现查询一个表/所有表的所有列名

    这篇文章主要介绍了Postgresql 实现查询一个表/所有表的所有列名,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • PostgreSql 重建索引的操作

    PostgreSql 重建索引的操作

    这篇文章主要介绍了PostgreSql 重建索引的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • 详解如何定位postgreSQL数据库中未被使用过的索引

    详解如何定位postgreSQL数据库中未被使用过的索引

    在生产环境上,由于不规范的优化措施,数据库中可能存在大量的索引,并且相当一部分的索引重未被使用过,今天带大家如何找出这些索引,本文给大家介绍了定位postgreSQL数据库中未被使用过的索引的方法,需要的朋友可以参考下
    2024-03-03
  • PostgreSQL 实现定时job执行(pgAgent)

    PostgreSQL 实现定时job执行(pgAgent)

    这篇文章主要介绍了PostgreSQL 实现定时job执行(pgAgent),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 详解PostgreSql数据库对象信息及应用

    详解PostgreSql数据库对象信息及应用

    这篇文章主要介绍了PostgreSql数据库对象信息及应用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 解决postgreSql 将Varchar类型字段修改为Int类型报错的问题

    解决postgreSql 将Varchar类型字段修改为Int类型报错的问题

    这篇文章主要介绍了解决postgreSql 将Varchar类型字段修改为Int类型报错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 在PostgreSQL中实现数据的自动清理和过期清理

    在PostgreSQL中实现数据的自动清理和过期清理

    在 PostgreSQL 中,可以通过多种方式实现数据的自动清理和过期处理,以确保数据库不会因为存储过多过时或不再需要的数据而导致性能下降和存储空间浪费,本文给大家介绍了一些常见的方法及详细示例,需要的朋友可以参考下
    2024-07-07
  • Debian中PostgreSQL数据库安装配置实例

    Debian中PostgreSQL数据库安装配置实例

    这篇文章主要介绍了Debian中PostgreSQL数据库安装配置实例,一个简明教程,需要的朋友可以参考下
    2014-06-06
  • Ubuntu中卸载Postgresql出错的解决方法

    Ubuntu中卸载Postgresql出错的解决方法

    这篇文章主要给大家介绍了关于在Ubuntu中卸载Postgresql出错的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-09-09
  • PostGresql 实现四舍五入、小数转换、百分比的用法说明

    PostGresql 实现四舍五入、小数转换、百分比的用法说明

    这篇文章主要介绍了PostGresql 实现四舍五入、小数转换、百分比的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01

最新评论