我正在尝试从数据库中创建一个查询,该查询将基于计数列将每一行扩展为多行。我需要摆桌子:
[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/