2012-02-02 57 views
-1

鉴于此输出到一个查询:周围组工作 - SQL服务器

ID | Question | Answer 

1 |  1  | 2 
1 |  2  | 5 
1 |  3  | 5 
2 |  1  | 2 
2 |  2  | 2 
3 |  4  | 7 

是否有SQL任何方式碰到这样的:

ID | Question | Answer 
1 
    |  1  | 2 
    |  2  | 5 
    |  3  | 5 
2  
    |  1  | 2 
    |  2  | 2 
3  
    |  4  | 7 

的目标是不超过重复ID并结束,但我没有任何东西可以分组,因为我想单独显示所有结果。

我已尝试解决GROUP BY,但目前为止没有太多结果。 我正在使用SQL Server。

+0

这通常在应用程序级完成,而不是在数据中完成基础。数据库擅长处理行。你想要一些特殊的行,比如标题,并且具有不同的大小。 – 2012-02-02 13:24:10

回答

2

您需要为标题

    • 插入额外的行从细节行
    • 确保顺序是正确删除ID,所以正确的标题是在右侧的详细信息。

    例子:

    select 
        -- Show the ID only if it is not a detail row 
        case when Question is null then ID else null end as ID, 
        Question, 
        Answer 
    From 
    (
        -- Detail rows 
        select ID, Question, Answer from T1 
        union all 
        -- Heading rows 
        select distinct ID, cast(null as type) as Question, cast(null as type) as Answer from T1 
    
    )x 
    order by 
        -- In order of ID 
        x.ID, 
        -- but make heading rows come first 
        case when x.Question is null then 0 else 1 end asc, 
        -- then order by question 
        x.Question 
    
  • 3

    不是一个SQL问题
    客户端代码演示问题

    例,在Reporting Services或水晶报表,你” d设置分组ID