我有一个名为annualsalary的列,其数据类型为varchar2。在本专栏中,我有25000美元、67000美元等值。我想去掉$符号和逗号。我只能做一个替换功能,并去掉dollarsign。但是,如何在同一个查询中去掉逗号呢?
我试着用下面的查询来做,但我无法去掉逗号。
SELECT REPLACE(ANNUALINCOME,'$','') AS column_variable FROM table_name;
它去掉了$符号,并显示输出为50000。但现在我也想去掉逗号,使它变成50000。
Nestreplace
s
SELECT REPLACE(REPLACE(ANNUALINCOME,'$',''), ',', '') AS column_variable
FROM table_name;
您可以使用TO_NUMBER
:
SELECT TO_NUMBER(value, '$999G999G999D99') AS amount
FROM table_name;
注意:这比REPLACE
有优势,因为它只需要一个函数调用,更重要的是,它将值从字符串转换为数字,因此如果对数据进行排序,则它将以数字排序,而不是以字母数字排序
注意2:您应该将ANNUALINCOME
存储为NUMBER
数据类型,而不是格式化字符串,并且当您想要显示值而不是反向执行时,可以使用TO_CHAR
应用适当的格式
对于样本数据:
CREATE TABLE table_name (value) AS
SELECT '$25,000' FROM DUAL UNION ALL
SELECT '$67,000' FROM DUAL
输出:
AMOUNT 25000 67000