SQL使用额外行获取数据

时间:2011-03-11 08:31:54

标签: sql

我有两个表,其中包含我感兴趣的列,如Table1.Column1和Table2.Column2 表1是组表的种类,表2是项目表。这两个表的连接查询获取以下格式的数据

Column1   Column2
A         1
A         2
B         1
B         2
B         3

我想要的是以下列格式获取数据:

Column1   Column2
A         0
A         1
A         2
B         0
B         1
B         2
B         3

即。每次开始时每组获得额外0。 0不会退出数据库。

有人知道如何在SQL中实现这个目标吗?

非常感谢,

2 个答案:

答案 0 :(得分:1)

这是一种方法。

SELECT  DISTINCT Column1, [Column2] = 0
FROM    (
          YourOriginalQuery
        ) q
UNION ALL 
        YourOriginalQuery

最有可能的是,通过将此要求合并到原始查询中,可以获得更好的解决方案。如果您发布查询,我们可以提出更好的选择。

答案 1 :(得分:0)

或类似的东西:

select C.CategoryId, drv.CategoryGroupId from Category as C
cross join (
    select 0 as CategoryGroupId 
    UNION
    select CG.CategoryGroupId from CategoryGroup as CG
)drv order by CategoryId, CategoryGroupId