热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

将1列分成5列

如何解决《将1列分成5列》经验,为你挑选了1个好方法。

我有一个相对简单的问题(我认为),但我无法解决。我有一列200条记录。行的值是数字1-200的列表(无重复)。我想在5列中组织数字,并将数据水平排序(升序AZ)。例:

Original table:
Column1
1
2
3
4
5
6
7
8
...and so on to 200

查看结果应如下所示:

|Col1|Col2|Col3|Col4|Col5|
   1    2    3    4    5
   6    7    8    9   10
   11   12  ...an so on to 200

我研究了PIVOTING,但我认为它不起作用。



1> Tim Biegelei..:

我们可以尝试一种数据透视查询,其中组定义为列减去一,再除以5。这会将前五个记录放入第一个组/行,然后将五个放入第二个组/行,依此类推。然后,我们以每个Column1 % 5值为中心来确定每个值将进入五列中的哪一列。

SELECT
    MAX(CASE WHEN Column1 % 5 = 1 THEN Column1 END) AS Col1,
    MAX(CASE WHEN Column1 % 5 = 2 THEN Column1 END) AS Col2,
    MAX(CASE WHEN Column1 % 5 = 3 THEN Column1 END) AS Col3,
    MAX(CASE WHEN Column1 % 5 = 4 THEN Column1 END) AS Col4,
    MAX(CASE WHEN Column1 % 5 = 0 THEN Column1 END) AS Col5
FROM yourTable
GROUP BY
    (Column1 - 1) / 5;

演示版


推荐阅读
author-avatar
天使的泪无人知晓
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有