在table1有6列,id,c1,c2,c3,c4,c5
其中c1 - c5 都是日期型的列,我想得到 id 和最新的列比如:id,c1,c2,c3,c4,c5
1,1998,1999,2000,1997,2002我想得到的是:
id,date
1, 2002

解决方案 »

  1.   

    SELECT id,[date]=MAX(c1)
    FROM
      (SELECT id,c1 FROM tb
      UNION ALL
      SELECT id,c2 FROM tb
      UNION ALL
      SELECT id,c3 FROM tb
      UNION ALL
      SELECT id,c4 FROM tb
      UNION ALL
      SELECT id,c5 FROM tb
      ) x
      GROUP BY id
      

  2.   

    select id , date = max(c1) from
    (
      select id , c1 from tb
      union all
      select id , c2 from tb
      union all
      select id , c3 from tb
      union all
      select id , c4 from tb
      union all
      select id , c5 from tb
    ) t
    group by id
      

  3.   

    select id,date=max(c1) from
    (
    select id,c1 from tb union all
    select id,c2 from tb union all
    select id,c3 from tb union all
    select id,c4 from tb union all
    select id,c5 from tb
    ) a
    group by a.id