java行转列的例子(java实现动态行转列)

  • 1、java行列值的互换?
  • 2、问一个java列转行的实现逻辑
  • 3、用java代码,实现m行n列矩阵的转换,即横向变为纵向,纵向变为横向(具体代码) 急~~~~~~~~
  • 4、求高手解决 java接收从oracle数据库检索出的结果集如何把行列变换
  • 5、java 数组行列转换
  • 6、sql 用select语句进行行转列

二维数组的行列值互换,又叫矩阵的转置,数组a转置后应该是1,4;2,5;3,6;

完整的矩阵转置的Java程序如下

按照你的要求输出1,2;4,5;3,6;的程序

c:forEach var=”book” items=”${要显示的数据集合}” varStatus=”j”

c:choose

c:when test=”${j.index%4==0}”

trtd${显示数据}/td

/c:when

c:otherwise

c:choose

c:when test=”${j.index%4==3}”

td${显示数据}/td/tr

/c:when

c:otherwise

td${显示数据}/td

/c:otherwise

/c:choose

/c:otherwise

/c:choose

/c:forEach

用到jstl

遍历时候控制方向就可以了,例如二维数组a[][]=[[a,b,c,d,e],[f,g,h,i,j],[k,l,m,n,o]]

for(int i=0;5;i++){

for(int j =0;j3;j++){

System.out.println(a[j][i]);

}

}

这个样子 就转过来了 要存的话,就顶一个数组 把结果存在里面就好了

直接一条SQL 可以搞定的 为什么还要放到 java 里面?

select decode(date,’201301′,date,null) as one,decode(date,’201302′,date,null) as two,decode(date,’201303′,date,null) as three from table

unin all

select decode(date,’201301′,name,null) as one,decode(date,’201302′,name,null) as two,decode(date,’201301′,name,null) as three from table

unin all

select decode(date,’201301′,dizhi,null) as one,decode(date,’201302′,dizhi,null) as two,decode(date,’201303′,dizhi,null) as three from table

如果就这几条数据建议用我这种 SQL搞定。

如果很多跳数据 。还是java里面搞比较好。

如果是在页面上显示 最好写了

就直接 循环td表格

listtddate/td/list

listtdname/td/list

listtddizhi/td/list

你这个的程序,只能成功运行 n*n的情况,也就是行数和列数相等的二维数组才能成功。

如果 n*m 也就是行数和列数不相同的情况就可能出错。

因为 n*m 是没有对角线的,也就是 i = j不一定出现在对角线上,所以出现了你上面的问题。

我们来看看一个小列子。有一个游戏玩家充值表(仅仅为了说明,举的一个小例子),

CREATE TABLE [Inpours]

(

   [ID]                INT IDENTITY(1,1), 

   [UserName]          NVARCHAR(20),  –游戏玩家

    [CreateTime]        DATETIME,      –充值时间    

    [PayType]           NVARCHAR(20),  –充值类型    

    [Money]             DECIMAL,       –充值金额

    [IsSuccess]         BIT,           –是否成功 1表示成功, 0表示失败

    CONSTRAINT [PK_Inpours_ID] PRIMARY KEY(ID)

)

 

INSERT INTO Inpours SELECT ‘张三’, ‘2010-05-01’, ‘支付宝’, 50, 1

 

INSERT INTO Inpours SELECT ‘张三’, ‘2010-06-14’, ‘支付宝’, 50, 1

 

INSERT INTO Inpours SELECT ‘张三’, ‘2010-06-14’, ‘手机短信’, 100, 1

 

INSERT INTO Inpours SELECT ‘李四’, ‘2010-06-14’, ‘手机短信’, 100, 1

 

INSERT INTO Inpours SELECT ‘李四’, ‘2010-07-14’, ‘支付宝’, 100, 1

 

INSERT INTO Inpours SELECT ‘王五’, ‘2010-07-14’, ‘工商银行卡’, 100, 1

 

INSERT INTO Inpours SELECT ‘赵六’, ‘2010-07-14’, ‘建设银行卡’, 100, 1

下面来了一个统计数据的需求,要求按日期、支付方式来统计充值金额信息。这也是一个典型的行转列的例子。我们可以通过下面的脚本来达到目的

SELECT  

        CreateTime, [支付宝] , [手机短信], 

        [工商银行卡] , [建设银行卡] 

FROM 

    SELECT CONVERT(VARCHAR(10), CreateTime, 120) AS CreateTime,PayType, Money 

    FROM Inpours 

) P 

PIVOT ( 

            SUM(Money) 

            FOR PayType IN 

            ([支付宝], [手机短信], [工商银行卡], [建设银行卡]) 

      ) AS T 

ORDER BY CreateTime

原创文章,作者:Z3X0C,如若转载,请注明出处:https://www.506064.com/n/126289.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Z3X0CZ3X0C
上一篇 2024-10-03 23:07
下一篇 2024-10-03 23:07

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • QML 动态加载实践

    探讨 QML 框架下动态加载实现的方法和技巧。 一、实现动态加载的方法 QML 支持从 JavaScript 中动态指定需要加载的 QML 组件,并放置到运行时指定的位置。这种技术…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29

发表回复

登录后才能评论