首页 > 解决方案 > SQL - 从 INT(127 -> A000127) 创建固定长度的字符串

问题描述

我有一个 INT 列。我想使用另一列中的整数创建一个固定长度(7)/varchar 的新列。

如何使用 SELECT 语句创建新列?

先感谢您!

旧柱127

标签: tsql

解决方案


我没有可用于检查语法的管理工作室,但它应该是这样的:

SELECT existing, [new] = CONCAT('A', RIGHT(CONCAT('000000', CAST(existing AS VARCHAR(6)), 6))
FROM tableName;

-- if you have table and want to add a column containing that data:
ALTER TABLE tableName ADD COLUMN [new] CHAR(7) NULL; -- should create new column
UPDATE tableName SET New = CONCAT('A', RIGHT(CONCAT('000000', CAST(existing AS VARCHAR(6)), 6)) 

原理是:

  • 将数字转换为“127”之类的文本
  • 追加到左边 6 '0' ('000000' + '127')
  • 从该字符串'000000127'中取出最右边的6个字符('000127')
  • 将“A”附加到左侧:“A000127”

推荐阅读