【发布时间】:2011-12-31 23:58:36
【问题描述】:
我有一个困扰我的问题。当 varchar 值由字母组成时,如何将 varchar 转换为数字。
对于我的 varchar 价格列值:
14dollars10cents
15dollars20cents
通过将其转换为 varchar 到数字价格列,值应为:
1410
1520
我知道如果 varchar 不包含任何字母,它可以通过“自动转换”
SELECT CONVERT(INT, PRICE) FROM Table
有什么办法可以去掉中间的字母,因为我想在上面做数学函数。
更新了将定点数放入的尝试:
SELECT CAST (Replace(REPLACE(PRICE, 'dollars', '.'),'cents','') AS Number(4,2)))
FROM TEST;
谢谢
【问题讨论】:
-
位置是固定的吗?然后子字符串操作将起作用。否则,使用正则表达式删除所有非数字。
-
您好,职位不固定。 dinup 提供的解决方案不能作为 formatfixedpoint 仅适用于某些字符串。
-
使用 REGEXP_REPLACE,您可以在一条 SQL 语句中完成所需的一切。我会留下一个答案来说明如何。