MS SQL服务器如何立即插入一个1到10的数字列到table(虚拟列)?
MS SQL Server how to instantly insert a 1 to 10 number column to table (virtual column)?
是否想立即为现有 table 上的每个行值添加一个数字列(1 到 10)?
您可以将 CROSS JOIN
与临时计数一起使用 table
例子
Select A.*
,B.Code
From YourTable A
Cross Join ( Select Top 10 Code=row_number() Over (Order By (Select NULL)) From master..spt_values n1 ) B
您可以使用递归查询生成行,然后将其与您的 table 交叉连接。
with codes as (
select 1 code
union all select code + 1 from cte where code < 10
)
select t.*, c.code
from mytable t
cross join codes c
对于少量行,我希望递归查询比 top 10
快于 table。
是否想立即为现有 table 上的每个行值添加一个数字列(1 到 10)?
您可以将 CROSS JOIN
与临时计数一起使用 table
例子
Select A.*
,B.Code
From YourTable A
Cross Join ( Select Top 10 Code=row_number() Over (Order By (Select NULL)) From master..spt_values n1 ) B
您可以使用递归查询生成行,然后将其与您的 table 交叉连接。
with codes as (
select 1 code
union all select code + 1 from cte where code < 10
)
select t.*, c.code
from mytable t
cross join codes c
对于少量行,我希望递归查询比 top 10
快于 table。