PG SQL截取字符串到指定字符位置
生活随笔
收集整理的這篇文章主要介紹了
PG SQL截取字符串到指定字符位置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天在做PG數據到HIVE的數據交換任務時,因為某個字段在PG中是Varchar類型,hive是bigint,而偏偏PG 中該字段的存儲值都被加了小數點位,導致字段類型轉換失敗。
現在就需要將字符串中小數點后的部分給截掉。
開始時嘗試使用的是CHARINDEX來獲取小數點的位置,然后使用substring函數截取該位置之前的數值。
但是運行時發現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函數
測試一下
select sal_qty, cast(SUBSTRING(sal_qty, 1 , position ('.' in sal_qty) - 1) as bigint) as sal_qty_int from table_test返回結果,符合預期。
另外還可以嘗試使用strpos函數,功能和position相同,但要注意參數位置
總結
以上是生活随笔為你收集整理的PG SQL截取字符串到指定字符位置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sqlserver字符串截取
- 下一篇: PC端和移动端网页特效,fastclic