测试数据:
create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)
insert into tb values('张三' , '语文' , 74)
insert into tb values('张三' , '数学' , 83)
insert into tb values('张三' , '物理' , 93)
insert into tb values('李四' , '语文' , 74)
insert into tb values('李四' , '数学' , 84)
insert into tb values('李四' , '物理' , 94)
go
下面是查询语句
declare @sql varchar(8000)
set @sql = 'select 姓名 '
select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']'
from (select distinct 课程 from tb) as a
set @sql = @sql + ' from tb group by 姓名'
exec(@sql)问题就是sql查询横向显示怎么显示在jsp里?jsp页面里效果是
姓名 语文 数学 物理
李四 74 84 94
张三 74 83 93
create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)
insert into tb values('张三' , '语文' , 74)
insert into tb values('张三' , '数学' , 83)
insert into tb values('张三' , '物理' , 93)
insert into tb values('李四' , '语文' , 74)
insert into tb values('李四' , '数学' , 84)
insert into tb values('李四' , '物理' , 94)
go
下面是查询语句
declare @sql varchar(8000)
set @sql = 'select 姓名 '
select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']'
from (select distinct 课程 from tb) as a
set @sql = @sql + ' from tb group by 姓名'
exec(@sql)问题就是sql查询横向显示怎么显示在jsp里?jsp页面里效果是
姓名 语文 数学 物理
李四 74 84 94
张三 74 83 93
解决方案 »
- 用jspSmartUpload实现下载时出现问题
- 在哪儿可以找到javaee.jar的src包,有的虾们可以给我传一个么?---在线等([email protected])
- jsp无法编译,帮忙
- !!!上火啊,FCKeditor2.6上传文件的配置问题,整了好几天了
- 求JSP页面访问过慢的解决方法
- 那位大牛可以提供LSA实现算法啊?
- 初学jsp应该看什么??
- Tomcat的配置问题
- 请问FTP和JSP????
- sql语句在SQLserver可以运行,跑的时候报错,说by附近有问题,求大神指点。
- ==========HttpClient 的 post 请 求 内 容 限 制=============
- 在线等 过滤器过滤url的问题 只想过滤一个url(jsp或者action)怎么设置
......
String 姓名="";
String 课程="";
String 分数="";
sql="select* from tb ";
rst = stmt.executeQuery( sql );
while(rst.next()){
姓名=rst.getString("姓名").trim();
课程=rst.getString("课程").trim();
分数=rst.getString("分数").trim(); %>
<tr >
<td width="16%" align="center"><font size="2"><%=姓名%> </font></td>
<td width="16%" align="center"><font size="2"><%=课程%> </font></td>
<td width="13%" align="center"><font size="2"><%=分数%> </font></td>
</tr>
<%
}
%>......
已经加上while可以循环了,但怎么来实现在页面里像下面这样的效果:姓名 语文 数学 物理
李四 74 84 94
张三 74 83 93能写代码出来吗?
<tr>
<td>姓名</td>
<td>语文</td>
<td>数学</td>
<td>物理</td>
</tr>
<tr>
对应你循环的四个<td>
</tr>
姓名是可以对应的,其他的是用
什么=rst.getString("什么").trim();
<tr>
<td>姓名</td>
<td>课程</td>
<td>分数</td>
</tr>
<%
......
String 姓名="";
String 课程="";
String 分数=""; sql="select* from tb ";
rst = stmt.executeQuery( sql );while(rst.next()){name=rst.getString("姓名").trim();
classname=rst.getString("课程").trim();
score=rst.getString("分数").trim(); %>
<tr >
<td width="16%" align="center"><font size="2"><%=name%> </font></td>
<td width="16%" align="center"><font size="2"><%=classname%> </font></td>
<td width="13%" align="center"><font size="2"><%=score%> </font></td>
</tr>
<%
}
%>
</table>
......
String name="";
String classname="";
String score="";
......
谢谢你们的回答,你的代码和我贴出的几乎没有什么其别,我要实现的是sql查询横向显示怎么显示在jsp里,效果是:
姓名 语文 数学 物理
李四 74 84 94
张三 74 83 93
数据库有3门以上的课程,所以要用sql查询横向显示怎么显示在jsp页面里。sql语句是declare @sql varchar(8000)set @sql = 'select 姓名 'select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']'from (select distinct 课程 from tb) as a set @sql = @sql + ' from tb group by 姓名'exec(@sql)
<%
......
sql="select* from tb ";
rst = stmt.executeQuery( sql );
int columnCount = rsmd.getColumnCount();//获取列数
%>
<tr>
<%
for(int i = 0; i < columnCount; i++)
{
String columnName = rst.getColumnName(i);
%>
<td><%=columnName%></td><!--遍历列名,生成表头-->
<%
}
%>
</tr><%
while(rst.next()){//遍历行数
%>
<tr><%
for(int i = 0; i < columnCount; i++)
{
String value=rst.getString(i).trim(); %>
<td width="16%" align="center"><font size="2"><%=value%> </font></td><!--遍历每列的值-->
<%
}
%>
</tr>
<%
}
%></table>