ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的测验 > SQL in Excel > 如何变换数据结构【已开贴】

如何变换数据结构【已开贴】

作者:绿色风 分类: 时间:2022-08-18 浏览:201
楼主
wcymiss
觉得锐版的函数题用sql做也挺有意思的。

题目说明:
     数据源A1:B16为乱序。
    用sql语句将部门与员工合并为一列,并按部门、员工排序,如C列效果。
    不得用辅助列、函数、vba、定义名称。
截止时间:
    2011年12月14日18:00
评分:
    正确效果即加5魅力。谢谢参与。



 

如何变换数据结构-sql.rar


Ps:中文的排序在sql里总不清楚是按什么来排的,所以把原先附件里的中文全换成英文了,开头的大写也换成了小写。
2楼
wjc2090742
  1. SELECT IIF(员工 IS NULL,部门,员工) AS 效果 FROM
  2.     (SELECT * FROM
  3.         (SELECT * FROM [Sheet1$A1:B16]
  4.         UNION
  5.         SELECT 部门,NULL AS 员工 FROM [Sheet1$A1:A16])
  6.     ORDER BY 部门,员工)
3楼
xyf2210
学习小胖的select null as
  1. select iif(员工 is null,部门,员工) as 效果 from (select 部门,null as 员工 from [Sheet1$A1:B16] union select * from [Sheet1$A1:B16])
4楼
mn860429
  1. select 部门 from
  2. (
  3. select distinct 部门,help from (select *,(select count(*) from [data$] where a.部门>=部门) as help from [data$] a order by 部门,员工)
  4. union all
  5. select 员工,help+0.1 from (select *,(select count(*) from [data$] where a.部门>=部门) as help from [data$] a order by 部门,员工)
  6. )
  7. order by help
很久没写了,子查询都忘了
5楼
wcymiss
开贴,谢谢楼上三位参与。我的语句是:
  1. select iif(员工 is null,部门,员工) as 效果 from (select * from [sheet1$a1:b16] union all select distinct 部门,null from [sheet1$a1:b16] order by 部门,员工)
原来union有去重效果,又学到新东东了。


6楼
wcymiss
2楼、3楼效果完全正确。4楼未对“员工”进行排名,最后 order部分变为:order by help,部门 就正确了。
7楼
bluexuemei
学习了,好题目
8楼
像狸一样坚定
学习3楼方法,谢谢各位老师
9楼
过期品24

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap