首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么吧数据格式转换成列

2012-11-08 
怎样吧数据格式转换成列两张表 院系表 department 教师表 teacher院系教师姓名教师类型电话号码信息学院张

怎样吧数据格式转换成列
两张表 院系表 department 教师表 teacher
  院系 教师姓名 教师类型 电话号码
  信息学院 张三 系主任 18079240505
  信息学院 李四 书记 18923450505
  信息学 陈明 科长 17890230404


把上面的从数据库里查出的 数据格式变成:


  院系 系主任 系主任电话 书记 书记电话 科长 科长电话
 信息学院 张三 18079240505 李四 18923450505 陈明 17890230404

[解决办法]

SQL code
 CREATE TABLE  department  (Dpt_Id VARCHAR(10), Dpt_Name VARCHAR(10)) INSERT INTO department  SELECT 1,'信息学院' --UNION ALL  --SELECT 2,'信息学'  CREATE TABLE  teacher  (TeaName VARCHAR(20), Telephone VARCHAR(20), Dpt_Id VARCHAR(20), techer_typ VARCHAR(20)) INSERT INTO teacher SELECT '张三','18079240505',1,'系主任' UNION ALL  SELECT '李四','18923450505',1,'书记' UNION ALL  SELECT '陈明','17890230404',1,'科长'   SELECT b.Dpt_Name,[系主任]=MAX(CASE WHEN techer_typ='系主任' THEN teaname END ),[系主任电话]=MAX(CASE WHEN techer_typ='系主任' THEN Telephone END ) ,[书记]=MAX(CASE WHEN techer_typ='书记' THEN teaname END ),[书记电话]=MAX(CASE WHEN techer_typ='书记' THEN Telephone END ) ,[科长]=MAX(CASE WHEN techer_typ='科长' THEN teaname END ),[科长电话]=MAX(CASE WHEN techer_typ='科长' THEN Telephone END ) FROM teacher a INNER  JOIN department b ON a.Dpt_Id=b.Dpt_Id GROUP BY b.Dpt_Name  /* (3 行受影响)  Dpt_Name   系主任                  系主任电话                书记                   书记电话                 科长                   科长电话 ---------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- 信息学院       张三                   18079240505          李四                   18923450505          陈明                   17890230404 警告: 聚合或其他 SET 操作消除了 Null 值。  (1 行受影响)   */ 

热点排行