我们假设我有一个表格,示例行如下所示:
ID PAYMENT_BASE PAYMENT_A PAYMENT_B PAYMENT_C PARTNER_ID TRANSFER_TITLE
1 123.0 15.12 30 15.91 123456 null
现在我想根据此表中的数据生成一个字符串,并更新TRANSFER_TITLE
列。
我期望在TRANSFER_TITLE
中看到的内容如下:
123,00-PA 15,12-PB 30,00-PC 15,91/123456
非常重要的事情:格式10中的数字应为10,00。格式12.1中的数字应为格式12.10,格式12.12中的数字应保持不变,但只用逗号代替点 - 12,12 ...
甚至可以在Oracle中使用吗?
答案 0 :(得分:2)
首先:
如何在TRANSFER_TITLE中获取数据
update table
set TRANSFER_TITLE = ID || PAYMENT_BASE || PAYMENT_A || PAYMENT_B || PAYMENT_C || PARTNER_ID
要格式化数字以返回两位或更多位小数,我会执行以下操作:to_number(to_char(PAYMENT_BASE), 2)
如果您需要将逗号更改为dot,请将数字字段设为varchar,然后执行REPLACE(TRANSFER_TITLE, '.',',')
希望能得到一些帮助。
答案 1 :(得分:0)
试试这个:
update table set TRANSFER_TITLE = replace(to_char(PAYMENT_BASE, 'fm9999999.90'),'.',',') || '-PA '
|| replace(to_char(PAYMENT_A, 'fm9999999.90'),'.',',') || '-PB '
|| replace(to_char(PAYMENT_B, 'fm9999999.90'),'.',',') || '-PC '
|| replace(to_char(PAYMENT_C, 'fm9999999.90'),'.',',') || '/' || PARTNER_ID