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是一种开源的关系型数据库,它提供了多种管理工具来操作数据库,下面这篇文章主要给大家介绍了关于postgresql行转列与列转行的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • PostgreSQL存储过程用法实战详解

    PostgreSQL存储过程用法实战详解

    这篇文章主要介绍了PostgreSQL存储过程用法,结合具体实例详细分析了PostgreSQL数据库存储过程的定义、使用方法及相关操作注意事项,并附带一个完整实例供大家参考,需要的朋友可以参考下
    2018-08-08
  • PostgreSQL实战之启动恢复读取checkpoint记录失败的条件详解

    PostgreSQL实战之启动恢复读取checkpoint记录失败的条件详解

    这篇文章主要给大家介绍了关于PostgreSQL实战之启动恢复读取checkpoint记录失败的条件的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-08-08
  • PostgreSQL 实现子查询返回多行的案例

    PostgreSQL 实现子查询返回多行的案例

    这篇文章主要介绍了PostgreSQL 实现子查询返回多行的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL物理备份恢复之 pg_rman的用法说明

    PostgreSQL物理备份恢复之 pg_rman的用法说明

    这篇文章主要介绍了PostgreSQL物理备份恢复之 pg_rman的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • postgresql 中round函数的用法说明

    postgresql 中round函数的用法说明

    这篇文章主要介绍了postgresql 中round函数的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • postgresql之greenplum字符串去重拼接方式

    postgresql之greenplum字符串去重拼接方式

    这篇文章主要介绍了postgresql之greenplum字符串去重拼接方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • PostgreSQL常用字符串分割函数整理汇总

    PostgreSQL常用字符串分割函数整理汇总

    作为当前最强大的开源数据库,Postgresql(以下简称pg)对字符的处理也是最为强大的,下面这篇文章主要给大家介绍了关于PostgreSQL常用字符串分割函数的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • PostgreSQL数据库命令行执行SQL脚本的三种方式

    PostgreSQL数据库命令行执行SQL脚本的三种方式

    生成环境中,出于安全性等原因,往往不提供数据库连接工具,所以对数据库的更新和升级就得通过命令行来实现,本文总结了三种命令行执行sql脚本的方式,需要的朋友可以参考下
    2024-02-02
  • Linux系统安装PostgreSQL数据库及配置的详细过程

    Linux系统安装PostgreSQL数据库及配置的详细过程

    这篇文章主要给大家介绍了关于Linux系统安装PostgreSQL数据库及配置的详细过程,PgSQL(全称PostgreSQL)是一个功能强大的开源对象-关系型数据库系统,结合了许多安全存储和扩展最复杂数据工作负载的功能,需要的朋友可以参考下
    2023-12-12

最新评论