首页 > 解决方案 > SQL Server Select Parent-Child + COALESCE ( Join )

问题描述

我有以下表格:

1.表格语言

示例: [EN, English, 1, NL] , [NL, dutch, 1, null] , [FR, french, 0, EN]

2.表枚举示例

示例: [1, Bla] , [2, blabla] , [3, blablabla]

3.表枚举ExampleTranslation

示例: [EN, 1, Blo] , [NL, 1, bloblo]

4.视图:vwExampleView

示例:[EN, 1, Blo] , [NL, 1, bloblo]。[FR, 1, 布鲁]

问题是关于视图:

一个。所以为了从语言表中获取语言链,我可以

Declare @TABLEVAR table (id nvarchar(3) ,parentid nvarchar(3))
;with parents as (
   select Id, Parentid from Language where Id = 'UK'
   union all
   select c.Id, c.ParentId from Language c
   join parents p on p.ParentId = c.Id 
)
INSERT INTO @TABLEVAR
select *
from parents
OPTION (MAXRECURSION 0)

但是现在在视图中我做了类似的事情,但是没有空值,而是在合并中进行了一种选择:

 Select t1.id, g.EnumExampleId, (select top(1) i.Value from   
 EnumExampleTranslation i where i.EnumExampleId = g.EnumExampleId )    
 as Description 
 FROM @TABLEVAR t1 FULL OUTER JOIN
 EnumExampleTranslation g on t1.id = g.LanguageId

我想开始工作的最后一个查询(或视图定义)。但是我在其中获取@TABLEVAR 值时遇到了一些麻烦。

标签: sqlsql-serverparent-childcoalesce

解决方案


推荐阅读