单列中的多个值作为索引视图

时间:2018-07-17 09:01:07

标签: sql sql-server sql-server-2012 full-text-search indexed-view

我有这样的问题。我的数据就像:

数字(Id) 字母(编号,编号编号)

如果我执行Join查询,则会得到如下输出:

SELECT N.Id, L.Id
FROM Numbers N
JOIN Letters L ON N.Id = L.NumberId

输出为

1 | a
1 | b
2 | a
2 | b
2 | c

但是我想在一列中包含所有字母,例如

SELECT N.Id, Letters.Value
FROM Numbers N
CROSS APPLY (SELECT
             (SELECT ',' + L.Id
              FROM Letters L
              WHERE L.NumberId = N.Id
              FOR XML PATH(''))) AS Letters(Value)

期望的结果是

1 | ,a,b
2 | ,a,b,c

有没有办法使第二个输出成为索引视图的结果? 我尝试使用CROSS APPLY和子查询,GROUP BY和DISTINCT。也许我可以将此查询拆分为更简单的查询?有什么建议吗?

0 个答案:

没有答案