我有这个类型的值(varchar(100),null):USTX00001099。
此值的最后四个字符表示$ 10.99
如何在Select功能中转换/提取10.99?
答案 0 :(得分:0)
可能是这样的:
SELECT TO_NUMBER(SUBSTR(col, 4)) / 100. FROM table
答案 1 :(得分:0)
有两种方式可以想到。 首先,您可以选择最后4位数,将其转换为数字类型,然后除以4.
select cast(right(name,4) as float) / 100
如果您需要强制执行货币格式设置,则可以使用其他转换操作,例如
select cast(cast(right(name,4) as float) / 100 as numeric(8,2))
第二种方式,我认为更好,就是在投射之前格式化字符串。像
这样的东西select cast(SUBSTRING(name,len(name)-3,2) + '.' + RIGHT(name,2) as numeric(8,2))
这应该回答你当前的问题。但是,对于花费数百或数千美元的物品,您会遇到问题。