我有一个像这样的插页
INSERT INTO (keyMolde, nEficiencia, nCavidades )
VALUES (Origen.keyMolde, Origen.nEficiencia,
CASE WHEN CAST(Origen.sCavidades AS INT) = Origen.sCavidades
THEN Origen.sCavidades
ELSE CAST(Origen.sCavidades AS Numeric(12, 0))
END);
问题进入Origen.nEficiencia
,我得到的值如下:290%
或91%
,我需要将其转换为91.0
或290.0
我该如何转换它?此致
答案 0 :(得分:1)
您可以使用REPLACE功能
REPLACE (Origen.nEficiencia, '%', '.0')
INSERT (keyMolde, nEficiencia, nCavidades )
VALUES (Origen.keyMolde,
CAST(REPLACE (Origen.nEficiencia, '%', '.0') AS decimal(18,2)),
CASE WHEN CAST(Origen.sCavidades AS INT) = Origen.sCavidades
THEN Origen.sCavidades
ELSE CAST(Origen.sCavidades AS Numeric(12,0))
END);
<强>更新强>
create table test(val varchar(20)); insert into test values ('90%'),('91%'),('23% AUMA'); GO
SELECT CAST(REPLACE(REPLACE(val, 'AUMA', ''), '%', '.0') AS decimal(18,2)) FROM test; GO
| (No column name) | | :--------------- | | 90.00 | | 91.00 | | 23.00 |
dbfiddle here