SQL Server:需要在最后两个字符之前添加一个点

时间:2019-06-30 19:21:41

标签: sql-server tsql

我有一个从平面文件中提取的数据,我需要在最后两个字符之前添加一个点。

例如

原始表:

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函数。

非常感谢。 。

1 个答案:

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