sqlserver中如何判断一列中当值为一位数时前面插入000,二位数插入00,三位数插入0,四位就不做操作sql server中如何判断一列中当值为一位数时前面插入000,二位数时前面插入00,三位数时前面插入0,
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/27 21:21:19
sqlserver中如何判断一列中当值为一位数时前面插入000,二位数插入00,三位数插入0,四位就不做操作sql server中如何判断一列中当值为一位数时前面插入000,二位数时前面插入00,三位数时前面插入0,
sqlserver中如何判断一列中当值为一位数时前面插入000,二位数插入00,三位数插入0,四位就不做操作
sql server中如何判断一列中当值为一位数时前面插入000,二位数时前面插入00,三位数时前面插入0,四位不就不做操作,例如:
编码 名称 编码需改为
1 xxx 0001
2 xxx 0002
10 xxx 0010
18 xxx 0018
113 xxx 0113
117 xxx 0117
1011 xxx 1011
1200 xxx 1200
存储过程中如何写语句,谢谢啦
sqlserver中如何判断一列中当值为一位数时前面插入000,二位数插入00,三位数插入0,四位就不做操作sql server中如何判断一列中当值为一位数时前面插入000,二位数时前面插入00,三位数时前面插入0,
直接用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))
\x05\x05\x05\x05WHEN LEN(id)=2 THEN '00'+CAST(ID AS VARCHAR(10))
\x05\x05\x05\x05WHEN LEN(id)=3 THEN '0'+CAST(ID AS VARCHAR(10))
\x05\x05\x05\x05WHEN 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
结果:
1\x050001
2\x050002
10\x050010
18\x050018
113\x050113
117\x050117
1011\x051011
1200\x051200
因为我用的int类型,所以类型转化
以上是sqlserver数据库的写法