方法1:調用to_char(int, text)函數,int為要轉換值,text為數值格式化模式,其中模式描述為:
使用舉例:模式 描述9 帶有指定數值位數的值0 帶前導零的值.(句點) 小數點,(逗號) 分組(千)分隔符PR 尖括號內負值S 帶符號的數值L 貨幣符號D 小數點G 分組分隔符MI 在指明的位置的負號(如果數字 < 0)PL 在指明的位置的正號(如果數字 > 0)SG 在指明的位置的正/負號
SELECT to_char(12345, '9999999999999999999')//結果‘ 12345’,結果字符串前面有空格,位數跟格式化模式中9的位數有關;
SELECT to_char(12345, '99999')//結果‘12345’
SELECT to_char(12345, '9999')//結果‘####’,當模式串小於數字個數時,字符串會顯示為#,位數跟
格式化模式中9的位數有關;
SELECT to_char(12345, '')//結果‘’
問題:將數值轉成字符串且不要前面的空格實現起來很麻煩,由於無法判斷
格式化模式中9的位數。可用下面方法2解決:
方法2:通過||連接
''||12345
2、將字符串轉成數值
方法調用: to_number(text,text
)函數,參數1是要轉的數字字符串,參數2為模式參數
使用舉例:
SELECT to_number('12345', '9999999999999999999')//12345
SELECT to_number('12345', '99999')//12345
SELECT to_number(''||12345, '9999')//1234,由於模式是4位,結果忽略最后一位;
SELECT to_number(' 12345', '9999999999999999999')//12345
SELECT to_number(' ab ,1,2a3,4b5', '9999999999999999999')//12345,會忽略所有字符串中非數字字符