当前位置:首页
开发技术指南» 文章正文
    引言:

 ·何方有此代码    »显示摘要«
    摘要: 哪里有像动网论坛里的那个发表问题里那个编辑器的代码啊 ......
 ·求助。。谢谢    »显示摘要«
    摘要: crt显示器屏幕变色(红黄绿等)?何解? ......


请[邹建]大哥再帮个忙

上次你帮我修改之后,我想查寻得到的结果在显示的时候多一个数据项classid2,来显示他们是属于类一下的哪个字类的的classid,  
  也就是这样的,那应该怎么修改?  
   
  class表  
  ------------------  
  id   parent_id   classname   islast  
  1         0                 类一             0  
  2         1                 类二             0  
  3         1                 类三             1  
  4         2                 类四             0  
  5         4                 类五             1  
  6         1                 类六             1  
   
  info表  
  ------------------  
  id   classid   name  
  1         3             X  
  2         5             T  
  3         4             Y  
  4         6             Z  
  5         3             C  
  6         5             T  
   
  我想查寻得到的结果在显示的时候多一个数据项classid2,来显示他们是属于"类一"下的哪个子类的的classid,  
  也就是这样的  
  id                     classid           name                   classid2        
  -----------   -----------   ----------   ----------    
  1                       3                       X                                 3                                              
  3                       4                       Y                                 2  
  5                       3                       C                                 3  
  6                       5                       T                                 2  
 

NO.1   作者: fengfangfang

select   info.id,info.classid,info.name,class.parent_id   classid2  
  from   info,class    
  where   info.id=class.id

NO.2   作者: zjcxc

 
  create   table   class(id   int,parent_id   int,classname   varchar(10),islast   bit)  
  insert   class   select   1,0,类一,0  
  union   all   select   2,1,类二,0  
  union   all   select   3,1,类三,1  
  union   all   select   4,2,类四,0  
  union   all   select   5,4,类五,1  
  union   all   select   6,1,类六,1  
   
  create   table   info(id   int,classid   int,name   varchar(10))  
  insert   info   select   1,3,X  
  union   all   select   2,5,T  
  union   all   select   3,4,Y  
  union   all   select   4,6,Z  
  union   all   select   5,3,C  
  union   all   select   6,5,T  
  go  
   
  --查询处理的函数  
  create   function   f_cid(@id   int)  
  returns   @re   table(id   int,level   int,islast   bit,parent_id   int)  
  as  
  begin  
  declare   @l   int  
  set   @l=0  
  insert   @re   select   id,@l,islast,parent_id   from   class   where   id=@id  
  while   @@rowcount>0  
  begin  
  set   @l=@l+1  
  insert   @re   select   a.id,@l,a.islast,  
  case    
  when   @l=1   then   a.id  
  when   @l>1   then   b.parent_id  
  else   a.parent_id   end  
  from   class   a,@re   b  
  where   a.parent_id=b.id   and   b.level=@l-1  
  end  
  delete   from   @re   where   islast=0  
  return  
  end  
  go  
   
  --调用函数实现查询(查询基础1)  
  select   top   5   a.*,b.parent_id  
  from   info   a,f_cid(1)   b  
  where   a.classid=b.id  
  go  
   
  --删除测试  
  drop   table   class,info  
  drop   function   f_cid  
   
  /*--结果  
   
  id                     classid           name               parent_id        
  -----------   -----------   ----------   -----------    
  1                       3                       X                     3  
  2                       5                       T                     2  
  4                       6                       Z                     6  
  5                       3                       C                     3  
  6                       5                       T                     2  
   
   
  --*/  
   
 


    摘要: 我以前用的是access数据库现转为sql server,但发现页面打开速度不如以前(用access),为什么?库中有4000条左右记录。 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE