22,210
社区成员
发帖
与我相关
我的任务
分享
insert into test(fm) values('21')
insert into test values('23')
insert test values('112')
insert into test
select 'w1'
union all
select '测试1'
union all
select '34'
union all
select '4567'
union all
select '1002'
select case isnumeric(fm) when 1 then case when len(fm)<4 then right('0000'+fm,4) else fm end else fm end from test
--------------------------------------------------
0021
0023
0112
w1
测试1
0034
4567
1002
(所影响的行数为 8 行)
select
case when isnumeric(cast(MaterialGroup as int))=1 then right('00000'+MaterialGroup,4) else MaterialGroup end
from
tb
WITH T(MaterialGroup) AS (
SELECT '21' UNION ALL
SELECT '23' UNION ALL
SELECT '112' UNION ALL
SELECT 'w1' UNION ALL
SELECT '测试1' UNION ALL
SELECT '34' UNION ALL
SELECT '4567' UNION ALL
SELECT '1002'
)
SELECT CASE WHEN MaterialGroup like '%[^0-9]%' THEN
MaterialGroup
ELSE
RIGHT('000'+MaterialGroup,4)
END MaterialGroup
FROM T
MaterialGroup
-------------
0021
0023
0112
w1
测试1
0034
4567
1002