我有一个从平面文件中提取的数据,我需要在最后两个字符之前添加一个点。
例如
原始表:
Price Discount Coupon
-----------------------------
30000 3000 5060
12500 2050 0
5900 590 0
59000 5900 1000
7030 0 0
37100 5020 0
21800 0 5060
3000 1020 0
已转换的表:
Price Discount Coupon
-------------------------------
300.00 30.00 50.60
125.00 20.50 0
59.00 5.90 0
590.00 59.00 10.00
70.30 0 0
371.00 50.20 0
218.00 0 50.60
30.00 10.20 0
我尝试在SQL Server中使用以下查询:
SELECT
(LEFT([Price], LEN([Price]) - 2)) + '.' + RIGHT(RTRIM([price]), 2)
FROM
dbo.Rawdata
但它仅适用于第一列
第537级消息,州立2,第4行,
无效的长度参数传递给LEFT或SUBSTRING函数。
非常感谢。 。
答案 0 :(得分:1)
尝试添加0支票
SELECT case when Coupon <> '0'
then (LEFT([Price],LEN([Price] )-2) ) +'.'+RIGHT(RTRIM([price]),2 )
else 0 end
FROM dbo.Rawdata
或
SELECT (LEFT([Price],LEN([Price] )-2) )+'.'+RIGHT(RTRIM([price]),2 )
FROM dbo.Rawdata
where Coupon <> '0'