现在的位置: 网页制作教程网站制作教程 >正文
asp语言高级教程

asp中一对多分组显示的Sql语句

发表于2016/12/1 网站制作教程 0条评论 ⁄ 热度 1,999℃

我们在ASP网站源码开发中,往往会遇到分组的需求,正常用sql语句中的order by就可以解决。

我今天要给大家介绍的需求案例,是我们是实际应用中经常碰到的。

需求:应用场景是一个图书管理系统,比如有100个作者,每个作者可能对应了若干个书名。要求按作者分类,分两列显示,一列是作者名,另一列是作者对应的书名,同一个作者只能在第一次出现,不同的作者之间用线隔开。

.NET全球化

通过上图可以看到,这是一对多的asp分组显示问题,首先我们要考虑sql语句该怎么写。作者名字如何只能出现一次?

经过整理,于是就有了下面代码:

假如有一张表book,里面有两个字段:author、bookname,分别代表作者和图书名。

<%
sql="select author,bookname from book order by author"
rs.open sql,conn,1,1
if not rs.EOF then 
 do while NOT rs.EOF 
  if author <> rs("author") then
   author=rs("author")
   Response.write("--------------------<br>")
   Response.write(author&" "&rs("bookname")&"<br>")
  else
   Response.write(rs("bookname")&"<br>")
  end if
 rs.MoveNext 
 loop 
end if
%>

上面的代码利用判断语句实现了同一个作者只出现一次,不同作者之间有分隔符相隔,每个作者后对应着多个书名。

  • 暂无评论