我有一个金额字段和佣金字段,我需要删除逗号:,
小数点:.
破折号:-
和百分号:%
。
我尝试过复制,格式化,替换和填充,
right ('000000000')
right('000000000') + rtrim(field), len#)
RTRIM(replicate('0', 9 - len(field)) + REPLACE(REPLACE(REPLACE(cast(field as varchar), ',', ''), '.',''), '-', ''))
但我从来没有得到我想要的结果。当我使用替换时,它会替换逗号,破折号或%
,但会缩短字段,并且不会用零填充左侧。我知道它可能就在我面前我只需要一些清晰度。
00-126.47
以0012647
0.00
以00000000
000126.47
以00012647
答案 0 :(得分:1)
试试这个:
创建样本表
DECLARE @Table as table (
field varchar(15)
)
填充样本表
INSERT INTO @Table VALUES
('00-126.47'),
('0.00'),
('000126.47'),
('00033%2.422')
选择
SELECT field As before,
RIGHT(REPLICATE('0', 9) +
REPLACE(
REPLACE(
REPLACE(
REPLACE(field, '-', '')
, '.', '')
, ',', '')
, '%', '')
, 9) As [After]
FROM @Table
结果:
before After
--------------- ---------
00-126.47 000012647
0.00 000000000
000126.47 000012647
00033%2.422 000332422
答案 1 :(得分:0)
这解决了我的问题;
RIGHT(REPLICATE('0',9)+ REPLACE(REPLACE(REPLACE(REPLACE(field,' - ',''),'。',''),',',''),'% ',''),9)作为[After]