代码之家  ›  专栏  ›  技术社区  ›  harpo Binary Worrier

如何在SQL中加入“固定向量”?

  •  0
  • harpo Binary Worrier  · 技术社区  · 17 年前

    我所说的“固定向量”是指一个静态的值列表,比如1到24。

    当前查询如下(简化)

    SELECT Period, Profit FROM Projections
    

    但数据是“稀疏的”,所以不是每个时段都有一行。

    什么查询每次都会给我一行1-24的数据,在没有数据的情况下为零(或NULL)?

    我希望仅通过查询来实现这一点,以避免客户端代码的混乱。

    谢谢!

    2 回复  |  直到 17 年前
        1
  •  1
  •   James Orr    17 年前

    您可以创建一个名为udfRange(start int,count int)或类似的udf,并将左键连接到函数的输出。

    或者,对于一些非常快速和肮脏的事情,你可以加入一个看起来像这样的子选区

    SELECT DATA.Period, P.Profit
    FROM (
    SELECT 1 AS Period
    UNION SELECT 2
    ...
    UNION SELECT 24) AS DATA 
    LEFT JOIN Projections P ON DATA.Period = P.Period
    
        2
  •  1
  •   Harper Shelby damiankolasa    17 年前

    为什么不创建一个值为1-24的“时段”查找表(以及可能相关的任何其他列,如时段的描述或名称),然后在时段查找表和投影表之间进行左外连接。

    推荐文章