SQL - 如何获取列的值并将其作为新列的值放在字符串的末尾
Posted
技术标签:
【中文标题】SQL - 如何获取列的值并将其作为新列的值放在字符串的末尾【英文标题】:SQL - How to grab a column's value and place it on the end of a string as a new column's value 【发布时间】:2020-11-10 05:06:58 【问题描述】:所以我想在一个有很多行的表上获取主键,并创建一个新列,这些值放在字符串的末尾。例如:
如果 PK 值为 1,2,3...999,则新列中的新值应为 DEV00001、DEV00002、DEV00003...DEV00999。
到目前为止我所拥有的 (此表的PK为ID):
ALTER TABLE table_name
ADD COLUMN EXTRA_ID VARCHAR(10) NOT NULL
UPDATE table_name SET
EXTRA_ID='DEV0000'+ID
WHERE ID < 10
UPDATE UPDATE table_name SET
EXTRA_ID='DEV000'+ID
WHERE ID < 100
UPDATE table_name SET
EXTRA_ID='DEV00'+ID
WHERE ID < 1000
这行得通吗? 也欢迎任何其他解决方法
【问题讨论】:
您使用的是什么 DBMS? Edit问题并添加标签。 【参考方案1】:无需多次查询。在 SQL Server 2012 及更高版本中,您可以使用format()
动态左填充id
和相关数量的0
s:
update table_name
set extra_id = 'DEV' + format(id, '00000')
【讨论】:
如果我将其添加为 flyway 脚本,这可能吗? @Squidlie:我不知道flyway。但这是常规 SQL,您应该能够直接将其合并到 SQL 脚本中。 如果是普通的 SQL,Flyway 就可以了。以上是关于SQL - 如何获取列的值并将其作为新列的值放在字符串的末尾的主要内容,如果未能解决你的问题,请参考以下文章