加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server将字符串列的值连接为5个字符长

发布时间:2020-12-12 08:25:25 所属栏目:MsSql教程 来源:网络整理
导读:场景: 我有一个table1(col1 char(5)); table1中的值可以是’001’或’01’或’1′. 需求: 无论col1中的值是什么,我都需要在5个字符串长度中将其与前导“0”连接,使其为5个字符长. 我申请的技术: select right(('00000' + col1),5) from table1; 我没有看到
场景:

我有一个table1(col1 char(5)); table1中的值可以是’001’或’01’或’1′.

需求:

无论col1中的值是什么,我都需要在5个字符串长度中将其与前导“0”连接,使其为5个字符长.

我申请的技术:

select right(('00000' + col1),5) from table1;

我没有看到任何理由,为什么它不起作用?但事实并非如此.
任何人都可以帮助我,我怎样才能达到预期的效果?

解决方法

由于您使用的是固定宽度的列,因此它的大小为5(带有空格).你需要修剪它:
DECLARE @table1 TABLE (col1 char(5))

INSERT INTO @table1 (col1) VALUES ('12345')
INSERT INTO @table1 (col1) VALUES ('1')

SELECT RIGHT('00000'+RTRIM(col1),5) FROM @table1

-- Output:
-- 12345
-- 00001

或者使用varchar代替:

DECLARE @table2 TABLE (col1 varchar(5))

INSERT INTO @table2 (col1) VALUES ('12345')
INSERT INTO @table2 (col1) VALUES ('1')

SELECT RIGHT('00000'+col1,5) FROM @table2

-- Output:
-- 12345
-- 00001

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读