资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 面试经验 > 面试问答

按列/行排序的值

面试问答 更新时间: 发布时间: 计算机考试归档 最新发布

按列/行排序的值

我可能不明白您所描述的一切。通过阅读您的问题和其他人的评论,我想这就是您要寻找的:

更新后的版本:

with cteOriginal as(    select *, RANK() over (partition by [SortOrder] order by id asc) as [NonUniqueSortOrder]    from    (        select id, A as [value], 1 as [SortOrder]        from #original        where A is not null        union all        select id, B as [value], 2 as [SortOrder]        from #original        where B is not null        union all        select id, C as [value], 3 as [SortOrder]        from #original        where C is not null        union all        select id, D as [value], 4 as [SortOrder]        from #original        where D is not null    ) as temp)select [value]from cteOriginalwhere id = (select MIN(tmp.id) from cteOriginal tmp where tmp.value = cteOriginal.value)order by ((([NonUniqueSortOrder] - 1) * 4) + [SortOrder])

我通过选择具有最小id(min(id))的重复值来摆脱重复值。您可以将其更改为使用max(id)。

初始版本:

with cteOriginal as(    select *, RANK() over (partition by [column] order by id asc) as [NonUniqueSortOrder]    from    (        select id, A as [value], 'A' as [Column], 1 as [SortOrder]        from #original        where A is not null        union all        select id, B as [value], 'B' as [Column], 2 as [SortOrder]        from #original        where B is not null        union all        select id, C as [value], 'C' as [Column], 3 as [SortOrder]        from #original        where C is not null        union all        select id, D as [value], 'D' as [Column], 4 as [SortOrder]        from #original        where D is not null    ) as temp)select [value]from cteOriginalorder by ((([NonUniqueSortOrder] - 1) * 4) + [SortOrder])

顺便说一句,我正在使用mssql 2005进行此查询。请发表评论,我们将对其进行完善。



转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/637223.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【按列/行排序的值】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2