SQLite:如何编写一个可以填充结果集中的空单元格的查询

时间:2013-11-27 22:08:20

标签: sql sqlite

我有一个带有以下架构和示例数据的SQLite数据库表:

  Fruit|  LBS|  Time
-----------------------
  Apple|       1|  00001
  Apple|       2|  00002
 Orange|       1|  00001
 Banana|       3|  00004

我希望能够运行一个查询来分配/重载一列,即“Fruit”对另一列,“Time”,并在结果集中派生出一个膨胀/填充(默认)值:

  Fruit|     LBS|  Time
-----------------------
  Apple|       1|  00001
  Apple|       2|  00002
  Apple|       0|  00004
 Orange|       1|  00001
 Orange|       0|  00002
 Orange|       0|  00004
 Banana|       0|  00001
 Banana|       0|  00002
 Banana|       3|  00004

正如您所看到的,对于具有默认(空)值的每个唯一Fruit类型,重复Time的所有现有值。

我为不知道究竟叫什么而道歉;但我希望这个例子能说明我的观点。

1 个答案:

答案 0 :(得分:2)

SELECT 
    f.Fruit, 
    COALESCE(x.LBS, 0), 
    t.Time 
FROM ( 
               ( SELECT DISTINCT Fruit FROM your_table ) f 
    CROSS JOIN ( SELECT DISTINCT Time  FROM your_table ) t 
) 
LEFT JOIN your_table x 
    ON  f.Fruit = x.Fruit 
    AND t.Time = x.Time;