0 sql-server sql-server-2005 sql-server-2000 sql-server-2008
我有表格列Percentage varchar(10)该表中的数据是
Pecentage
2/10
4/10
6/10
..............
Run Code Online (Sandbox Code Playgroud)
现在我必须将上面的百分比转换为十进制,所以现在我这样做.从TabName中选择CAST(十进制百分比)我收到异常错误将数据类型varchar转换为numeric.
我想得到像0.2,0.4,0.6的结果
您无法将该varchar格式(2/10)转换为float.您需要获取单个字符串然后执行除法
Declare @Sample Table
(Percentage varchar(10))
Insert into @Sample
values
('2/10'),('4/10'),('6/10')
;With CTE (Numerator,denominator)
as
(
Select cast(substring(Percentage,0,charindex('/',percentage))as float),
cast(substring(Percentage,charindex('/',percentage)+1,len(Percentage)) as float)
from @Sample
)
select Numerator/denominator from CTE
Run Code Online (Sandbox Code Playgroud)
结果
(No column name)
0.2
0.4
0.6
Run Code Online (Sandbox Code Playgroud)