【发布时间】:2018-06-18 13:34:59
【问题描述】:
SELECT CONVERT(DECIMAL(18,2)
,ROUND( REPLACE
(
REPLACE(
SUBSTRING([ColumnName],0, CHARINDEX(' ',[ColumnName],1) )
,'$',''
)
,',',''
)
,2
)
) AS 'ColumnName'
,[ColumnName]
,*
FROM TABLENAME
CHARINDEX 返回空间索引,但当数据中没有空间时,它返回 0。我想要的是当结尾数据有空格时,SUBSTRING 应该考虑这一点,当没有空格时,它应该考虑字符串的长度。
【问题讨论】:
-
您使用的是哪个 dbms。 (几个产品特定的功能。)
-
我不确定你最后一句是什么意思。您可以添加一些示例数据来说明吗?此外,看起来您正在使用 sql-server (因为您使用括号)。在 sql-server 中(至少),
substring是基于1,而不是0,因为您正在使用它。 -
对我来说,它读到你想在最后删除空格,如果是这样你可以使用 RTRIM() 在看起来你正在使用的 sql server 上