代码之家  ›  专栏  ›  技术社区  ›  JosephDoggie

重构联合查询,以排除公共列

  •  -1
  • JosephDoggie  · 技术社区  · 2 年前

    有没有办法重构这个简化的联合查询: 我们的目标是“排除”查询的公共部分,然后在表达式的“右侧”添加不同的列,尽管我不确定语法。 人们希望结果比最初的UNION查询更快。

    Select t1.a1, t1.a2, t1.a3 as ourIntCol
    FROM ourtable t1
    
    UNION -- or UNION ALL
    Select t1.a1, t1.a2, t1.a4 as ourIntCol
    FROM ourtable t1
    

    变成

    Select t1.a1, t1.a2, .....
    

    为了简单起见,假设我们所有的列都是整数。

    另请参见: related question on query refactorization

    这是一个使用TSQL语言的SSMS(Microsoft SQL)系统。 我使用的是SSMS 15.0,底层数据库是Microsoft SQL Server 2012。

    0 回复  |  直到 2 年前