我正在尝试从数据库中创建一个查询,该查询将基于计数列将每一行扩展为多行。我需要摆桌子:

[DATE]     [COUNT]     [OTHER_COLUMN]
20120101   3           X
20120201   2           Y

并创建此:
[DATE]     [OTHER_COLUMN]
20120101   X
20120101   X
20120101   X
20120201   Y
20120201   Y

我发现了很多相反的方法(将多行合并为一),或将多列扩展为多行(基于每一列),但是我似乎找不到找到相同方法的方法。行。我正在使用SQL Server 2012。

最佳答案

为此,您需要一个像这样的统计表:http://www.sqlmag.com/article/sql-server/virtual-auxiliary-table-of-numbers

然后,您可以编写:

SELECT [Date], Other_Column
FROM dbo.MyTable
CROSS APPLY dbo.GetNums([COUNT]);

这是一个SQL小提琴,用于演示实际的解决方案:http://sqlfiddle.com/#!6/2edda/2

关于sql-server - 一行中的查询中有多行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14146779/

10-13 03:44