【问题标题】:SQL Server 2008: concatenate fractions of n-rows togetherSQL Server 2008:将 n 行的分数连接在一起
【发布时间】:2014-04-04 12:46:06
【问题描述】:

我的桌子看起来像:

column 1 | column 2
--------------------
   A         L
   B         M
   C         N
   D         O
   E         P
   F         Q
   G         R
   H         S
   I         T
   J         U
   K         V

现在我想将 n 行(n 是可变的)的分数“连接”在一起。

例如:

-) 如果 n = 4,则输出应为:

column 1 | column 2 | column 1 | column 2 | column 1 | column 2
   A          L          E          P          I          T
   B          M          F          Q          J          U
   C          N          G          R          K          V
   D          O          H          S

-) 如果 n = 10,则输出应为:

column 1 | column 2 | column 1 | column 2
   A          L          K          V
   B          M
   C          N
   D          O
   E          P
   F          Q
   G          R
   H          S
   I          T
   J          U

我考虑过使用临时表和循环。每次迭代后,我选择 n 行的一部分并将它们连接在一起(使用联合)。但是,我认为这个解决方案对于大型数据集可能有点慢。

也许你们当中有人知道更好的方法?

如果有人能帮我解决这个问题,我将不胜感激。

亲切的问候

伯恩哈德

【问题讨论】:

  • 这是一个表示问题,因此应该在您的表示层中处理,例如报告、网页、表格等

标签: sql sql-server sql-server-2008 row concatenation


【解决方案1】:

这不完整

pivot 离开了,我正在考虑做这样的事情,

Declare @n int=4
Declare @j int
Declare @k int
Select  @j=count(*) from #t
if(@j%@n=0)
set @k= (@j/@n)
else
set @k= (@j/@n)+1
--select @k
;with CTE as
( 
select *,ntile(@k)over(order by column1)rn from #t
)
select * from cte

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    相关资源
    最近更新 更多