【发布时间】:2020-02-08 01:47:57
【问题描述】:
鉴于以下产品和替代表,我如何才能获得具有所有可能性的输出?
产品表
> Category | Year | Product Code
> :--------|------|-------------
> Animals | 1998 | A0001
> Sports | 2001 | A0002
替换表
> Product From | Product To
> :------------|------------
> A0001 | A0003
> A0002 | A0004
> A0003 | A0005
> A0004 | A0006
> A0006 | A0007
产品 A0001 被替换为 A0003,然后 A0003 被替换为 A0005。
将产品 A0002 替换为 A0004,将 A0004 替换为 A0006,然后将 A0006 替换为 A0007。
想要的输出是:
> Category | Year | Product From | Product To
> :--------|------|--------------|-----------
> Animals | 1998 | A0001 | A0003
> Animals | 1998 | A0003 | A0005
> Sports | 2001 | A0002 | A0004
> Sports | 2001 | A0004 | A0006
> Sports | 2001 | A0006 | A0007
我认为 COALESCE 函数可能对我有帮助,但我无法构建查询。
【问题讨论】:
-
您正在尝试绘制图表。要获得第一行,您需要一个连接,但第二行需要 two 连接*。
COALESCE在这里无济于事。您也许可以使用 [recursive CTE](mssqltips.com/sqlservertip/1520/…)