sqlserver中如何判断一列中当值为一位数时前面插入000,二位数插入00,三位数插入0,四位就不做操作
发布网友
发布时间:2022-04-12 12:05
我来回答
共2个回答
热心网友
时间:2022-04-12 13:34
直接用case语句不就行了?
CREATE TABLE test(id int)
INSERT INTO dbo.test
( id )
SELECT 1
UNION ALL
SELECT
2
UNION ALL
SELECT
10
UNION ALL
SELECT
18
UNION ALL
SELECT
113
UNION ALL
SELECT
117
UNION ALL
SELECT
1011
UNION ALL
SELECT
1200
语句:
1、
SELECT id,sid=CASE WHEN LEN(id)=1 THEN '000'+CAST(ID AS VARCHAR(10))
WHEN LEN(id)=2 THEN '00'+CAST(ID AS VARCHAR(10))
WHEN LEN(id)=3 THEN '0'+CAST(ID AS VARCHAR(10))
WHEN LEN(id)=4 THEN CAST(ID AS VARCHAR(10)) END
FROM test
2、
select id,sid=right('000'+CAST(ID AS VARCHAR(10)),4) from test
结果:
10001
20002
100010
180018
1130113
1170117
10111011
12001200
因为我用的int类型,所以类型转化
以上是sqlserver数据库的写法
热心网友
时间:2022-04-12 14:52
select right('000'+列,4) from tb