tableNo  departs
 001      水吧
 001      厨房
 001      明档
 003      厨房
 005      明档
 005      水吧
 005      厨房
 005      批发部
 005      其它   在 departs 中只有 水吧 ,厨房,明档,批发部,其它 这五种情况
怎样用SQl语句得到如下的格式
 tableNo  departs1  departs2   departs3   departs4   departs5
  001       水吧      厨房       明档

解决方案 »

  1.   

    SQLSERVER的MSDN 或上baidu查"交叉查询"
      

  2.   

    Mark!友情UP
      

  3.   

    给你看个例子吧
    http://topic.csdn.net/t/20050324/16/3878271.html
      

  4.   

    select tableno, max(decode(departs,'水吧','水吧'))departs1, max(decode(departs,'厨房','厨房'))departs2, max(decode(departs,'明档','明档'))departs3, max(decode(departs,'批发部','批发部'))departs4, max(decode(departs,'其他','其他'))departs5 from dd group by tableno having tableno=1
    /
      

  5.   

    select C.id,max(D1) D1,max(D2) D2,max(D3) D3,max(D4) D4 ,max(D5) D5
    FROM 
    (select b.id ,
    (case b.name when N'水吧' then isnull(N'水吧','') else '' end ) 'D1',
    (case b.name when N'厨房' then isnull(N'厨房','') else '' end ) 'D2',
    (case b.name when N'明档' then isnull(N'明档','') else '' end ) 'D3',
    (case b.name when N'批发部 ' then isnull(N'批发部 ','') else '' end ) 'D4',
    (case b.name when N'其它 ' then isnull(N'其它 ','') else '' end ) 'D5'
         from rowTOcolumn as b 
     )C
    group by C.id这个主要是针对楼主的题目写的,通用性不好,等想到好方法在贴上来