SQL - 将VARCHAR转换为Decimal

时间:2017-03-07 21:25:29

标签: sql select decimal

我有这个类型的值(varchar(100),null):USTX00001099。

此值的最后四个字符表示$ 10.99

如何在Select功能中转换/提取10.99?

2 个答案:

答案 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))

这应该回答你当前的问题。但是,对于花费数百或数千美元的物品,您会遇到问题。