一、概覽
在實際的開發工作中,經常需要將字符串轉換為數字類型進行運算或者比較。在pgsql中,字符串轉數字十分常見,因此對於pgsql字符串轉數字的轉換方法有了系統性的整理。
二、轉換方法詳解
1、to_number()
to_number是pgsql中最常用的字符串轉數字函數。其基本語法如下:
to_number(text, text)
第一個參數text是要被轉換為數字類型的串,第二個參數text是描述數據類型的模式串。
下面是示例:
SELECT to_number('1001.001', '9999.999');
結果:1001.001
to_number函數會按照第二個參數中指定的模式串將第一個參數text轉換為數字類型。
2、cast()
cast函數是pgsql中常用的強制類型轉換函數,可以將任意數據類型強制轉換為指定數據類型。其基本語法如下:
CAST ( expression AS type )
expression是要強制轉換的參數,type是指定要轉換的數據類型,type可以是pgsql中任意數據類型。
下面是示例:
SELECT CAST('12345' AS INTEGER);
結果:12345
在這個例子中,’12345’被強制轉換為INTEGER類型。
3、::操作符
在pgsql中,可以使用::操作符來進行強制類型轉換。基本語法如下:
expression::type
expression是要強制轉換的參數,type是指定的數據類型。
下面是示例:
SELECT '12345'::INTEGER;
結果:12345
在這個例子中,’12345’被強制轉換為INTEGER類型。
三、轉換注意事項
1、格式化字符串
to_number()函數要求字符串必須為合理的數值格式,否則會拋出錯誤。比如,第二個參數為’9999.999’,那麼to_number(‘abc’, ‘9999.999’)就會返回錯誤。
而在使用cast()和::操作符的時候,則不需要字符串為合理的數值格式,只需要符合強制轉換的數據類型即可。
2、小數位數
在to_number()函數中,如果數字包含小數位,那麼第二個參數應該包含小數位數,否則會導致錯誤。
而在cast()和::操作符中,則對小數位數沒有硬性要求。
3、類型匹配
在使用cast()和::操作符進行類型轉換時,如果要強制轉換的數據類型與表中的列類型不匹配,會拋出類型不匹配的錯誤。
四、示例代碼
1、to_number()
SELECT to_number('12345', '99999');
2、cast()
SELECT CAST('12345' AS INTEGER);
3、::操作符
SELECT '12345'::INTEGER;
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/155272.html