sql-server - 插入带有前缀和递增数字的行

标签 sql-server t-sql azure-sql-database

我想插入 300 行,其中用户名由前缀后跟从 001-300(或仅 1-300)递增的数字组成。

例如:PRC001、PRC002、PRC003、PRC004

我如何在一条语句中做到这一点?

编辑:我正在使用 SSMS 2016 和 Microsoft Azure 数据库

最佳答案

Insert Into YourTable (SomeID)
Select Top 300 Format(Row_Number() Over (Order By Number),'PRC000') From master..spt_values 

另一个选项是创建一个临时统计表

;with cte0(N) As (Select 1 From (Values(1),(1),(1),(1),(1),(1),(1),(1),(1),(1)) N(N)),
      cteN(N) As (Select Row_Number() over (Order By (Select NULL)) From cte0 N1, cte0 N2, cte0 N3) 
Select Top 300 Format(N,'PRC000') From cteN

您也可以使用任何表(包含超过 300 条记录)

Select Top 300 Format(Row_Number() Over (Order By (Select null)),'PRC000') From AnyLargerTable

插入内容是

enter image description here

关于sql-server - 插入带有前缀和递增数字的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41123361/

相关文章:

c# - Entity Framework 包含与哪里

sql - 相同的查询 - 查询存储中的不同查询

java.util.Date 到 java.sql.Date 不包含时间

sql-server - 为什么 COALESCE 返回 NULL 而不是我需要的值?

sql-server - SSIS在执行任务时无法获取连接管理器,但在管理器中连接成功并显示预览数据

sql-server - 对于至少在台式电脑、笔记本电脑或打印机之一上拥有型号的每个制造商,确定其产品的最高价格。输出: maker;

sql - 在 T-SQL 中根据列的连续日期创建两列

azure - 让 SQL Azure 监听备用端口

sql - 在 SQL Server 中使用表变量

sql - 在 "Status"时间后动态更新 "X"列