PG SQL截取字符串到指定字符位置
今天在做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 ) → integerReturns 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 ) → integerReturns 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
PG SQL截取字符串到指定字符位置相关推荐
- Excel中如何截取字符串中指定字符后的部分字符
1.如何给某列属性为时间整体加一个时间值: 场景一:假如我有一个excel中的某一列如下图所示,如何将该列的时间(用B代替整列)整体加一分钟呢?方法很简单,在空白单元格填写时间格式图中A所示:复制单元 ...
- c++编写函数实现字符串中指定字符位置插入字符串
#include <iostream> #include<bits/stdc++.h> using namespace std; //定义一个void函数,有三个参数,分别是s ...
- php 按 截取字符串,PHP按符号截取字符串的指定部分
字符串截取在php开发中是比较常用的: 而且对于截取的需求也有很多种: 就比如说对url链接的操作:http://baijunyao.com/article/12 有时我们想截取最后一个斜杠'/'后面 ...
- Golang中获取中文字符串的子串字符位置及截取子串
Golang中获取中文字符串的子串字符位置及截取子串 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.cs ...
- SQL截取字符串(substring与patindex的使用)
SQL截取字符串(substring与patindex的使用) 首先学习两个函数 1.substring 返回字符.binary.text 或 image 表达式的一部分. 基本语法:S ...
- 去掉字符串头尾指定字符
package com.cloudsky.utils; /*** @ClassName: TrimCharUtil* @Author: lulu* @Description: 去掉字符串头尾指定字符* ...
- SQL截取字符串替换
SQL截取字符串替换 字符串截取 1. left()截取左边 2. right()截取右边 3. SUBSTR() / SUBSTRING() 截取 SUBSTRING(name,5,3) 截取nam ...
- php字符串以符号截取,PHP按符号截取字符串的指定部分的实现方法
大家在开发中可能会遇到需要截取某一个部分的内容,方法有很多,可以使用正则,也可以用内置函数,但该如何才能尽人意呢?傲世今天就给大家开开眼. 对于截取的需求也分很多种,字符串的截取php内置函数就有很多 ...
- php截取多个分割符号_PHP按符号截取字符串的指定部分的实现方法
字符串截取在php开发中是比较常用的: 而且对于截取的需求也有很多种: 有时我们想截取最后一个斜杠'/'后面的数字: 有时我们又需要截取第一个斜杠'/'前面的内容判断用户输入的url链接带不带http ...
最新文章
- C#远程访问linux(ubuntu)或windows的mysql数据库
- Python_XlrdXlwt
- leetcode 714. 买卖股票的最佳时机含手续费(dp)
- 清华大学出品:罚梯度范数提高深度学习模型泛化性
- 神经网络造“汉字”新技能全开,biangbiang面自愧不如
- [微信小程序] js变量名称写活
- SQL Server 默认跟踪应用4 -- 检测日志文件自动增长
- go import 导入包名前加下划线 _
- 七日杀服务器怎么修改天数,七日杀如何调整天数 | 手游网游页游攻略大全
- c语言 菜单选择,设计一通过 c语言 个简单实用的菜单,通过菜单选择不同的菜单项并实现相应的功能。...
- 报错Exception opening port “18080“ (port may be in use), cause: “java.net.BindException: Address alrea
- 太极限了,JDK的这个BUG都能被我踩到!
- 一百个最有用的网站地址
- 关于数组名:数组名是数组首元素的地址
- MSCKF 源码解析 一
- 大家来找茬游戏助手、外挂的实现
- boost multi_index_container 多索引容器的使用
- 【xtku】熟知idown万用下载器的使用办法
- 常用目录加密的朋友请看:千万别用《高强度文件夹加密大师》这个软件。
- 智慧水务软件-科学系统架构-数字化管理
热门文章
- react前端下载后端返回文件流(文件流下载excel、csv)
- Linux set 命令的使用方法
- Linux systemctl 详解自定义 systemd unit
- 一款企业级的供应链采购系统,已开源
- 智慧武汉地理信息大数据中心上线 比百度地图更全
- SVM原理篇之手撕SVM
- [1039]linux使用sz命令下载大于4G的文件到windows
- hdu--改革春风吹满地
- 百家饭OpenAPI v0.6.0新版夏日发布!快来看(3)——多端API整合测试功能
- 华为nova6计算机,教大家华为nova6 5G手机怎么使用Huawei Share来连接电脑传输文件方法...