这是我当前的 SQL Server 查询,几乎是我想要做的:
select "dokumentgruppe" + ', ' + convert(varchar(10), dokumentgruppenr)
+ ', ' + 'Parent:' + convert(varchar(10), parentgruppenr)
as "Dokumentgruppe"
from "dbo"."dokumentgruppe"
where aktiv = '1'
order by "Dokumentgruppe"
Run Code Online (Sandbox Code Playgroud)
它给了我这个结果:
Budsjetter, 29, 家长:0 电子邮箱, 36, 家长:0 Fyllearrester, 40, 父母:38 Inngående, 42, 父母:36 JuksOgFanteri, 38, 家长:0 Legeattester, 39, 家长:38 林宁, 26, 家长:0 Periodiske regnskapsrapporter, 30, 家长:0 Permanente opplysninger, 23, 家长:0 Produksjon Fakturing, 33, 家长:0 Produksjon Lønn, 32, 家长:0 Produksjon Regnskap, 31, 家长:0
问题是,我想说明的实际名称的Parentgruppe
替代ParentgruppeID
。该Parentgruppe
具有一个ID和一个对应的姓名。
像这个例子:
Legeattester, 39, Parent:*JuksOgFanteri
Run Code Online (Sandbox Code Playgroud)
您可以通过将表与自身连接来获得此结果。
select c.dokumentgruppe
+ ', ' + convert(varchar(10), c.dokumentgruppenr)
+ ', ' + 'Parent:' + isnull(p.dokumentgruppe,'')
+ ', ' + convert(varchar(10), c.parentgruppenr)
as Dokumentgruppe
from dbo.dokumentgruppe as c
left join dbo.dokumentgruppe as p on c.parentgruppenr=p.dokumentgruppenr
where c.aktiv = '1'
order by c.Dokumentgruppe
Run Code Online (Sandbox Code Playgroud)
这是一个邻接列表风格的层次结构,你可以在这里找到对它们的很好的介绍:Sql Server Bible Sample Chapter 17: Traversing Hierarchies
归档时间: |
|
查看次数: |
329 次 |
最近记录: |