首页 > 解决方案 > SQL Server:将一行拆分为多行(值)

问题描述

我有例如

Select * from mytable

在此处输入图像描述

我需要有

在此处输入图像描述

请帮忙 :)

标签: sqlsql-server

解决方案


我喜欢为此目的使用递归 CTE:

with cte as (
      select name, name2, 1 as ind, value
      from mytable
      union all
      select name, name, ind + 1, value
      from cte
      where ind < value
     )
select name, name2, 1
from cte
option (maxrecursion 0);

如果您的数据不是太大,那么性能应该没问题。如果您有大量数据,那么您可能需要考虑使用数字表。


推荐阅读