我需要能够即时创建占位符记录。例如,如果我有 myTable ,那就是
-Apple 1
-Apple 2
-Apple 3
-Pear 1
-Pear 2
我需要一个查询才能吐出来。
-Apple 1
-Apple 2
-Apple 3
-Apple 0
-Pear 1
-Pear 2
-Pear 0
我不希望将实际的空白记录追加到数据中,只是让它出现在查询输出中。这可能吗?
答案 0 :(得分:2)
考虑使用标量0向记录源添加UNION
查询的GROUP BY
查询。以下假设表具有 Fruit 和 Val 列。但是,UNION
会将您的 Val 列命名为0,1,2,3 ......而UNION ALL
会使行无序,最下面两行都是零。
SELECT t.Fruit, t.Val
FROM Fruits t
UNION
SELECT t.Fruit, 0
FROM Fruits t
GROUP BY t.Fruit
要在每个组的最高值下面放置一行,例如 Apple 在1,2,3, - > [4]< - 使用Max(...) + 1
骨料:
SELECT t.Fruit, t.Val
FROM Fruits t
UNION
SELECT t.Fruit, Max(Val) + 1
FROM Fruits t
GROUP BY t.Fruit