0

SQL Serverでテーブルフィールド値のすべてのシーケンシャルを構築する方法私はこれに似たテーブルを持っています

a
b
b
c
d
へ

同様の出力を持つこのテーブルの関数が必要です

a
ab
アブ
abbc
あべっく
abbdcf

それらのアイテムを注文するIDがあると仮定します。

4

2 に答える 2

4

これらのアイテムを注文する (ギャップのない、増加する) ID があると仮定します。

with tree (id, all_items) as (
  select id, cast(data as varchar(max)) as all_items
  from foo 
  where id = 1

  union all

  select c.id, p.all_items + c.data
  from foo c
    join tree p on p.id = c.id - 1
)
select all_items
from tree

SQLFiddle の例: http://www.sqlfiddle.com/#!3/8840c/1

于 2012-10-13T09:54:25.067 に答える
1
Declare @Temp Table
(
    Id Int Identity(1,1),
    Data Varchar(1)
)
Insert Into @Temp(Data) Values ('a')
Insert Into @Temp(Data) Values ('b')
Insert Into @Temp(Data) Values ('b')
Insert Into @Temp(Data) Values ('c')
Insert Into @Temp(Data) Values ('d')
Insert Into @Temp(Data) Values ('f')

Declare @i Int = 1, @j Int = 1,@Str Varchar(max) = '',@AllStr Varchar(max) = ''
While(@i <= (Select MAX(Id) From @Temp))
Begin
    While(@j <= @i)
    Begin
        Set @Str += (Select Data From @Temp Where Id = @j)
        Set @j += 1
    End
    Print @str 
    Set @j = 1
    Set @i += 1
    Set @Str = ''
End
于 2012-10-13T09:43:58.007 に答える