CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  数据库相关

如何写SQL语句才能实现下面结果

楼主motoc(街车)2006-03-17 14:42:49 在 PowerBuilder / 数据库相关 提问

表table1有字段  
  room zhanghao  
  0101 001  
  0101 002  
  0102 003  
  0105 006  
  0105 007  
   
  目的结果  
  room zhanghao(或计算列)  
  0101 001,002  
  0102 003  
  0105 006,007  
  问题点数:50、回复次数:5Top

1 楼njchf()回复于 2006-03-17 15:04:35 得分 10

一般的sql语句据本人所知很难实现,除非加上一些限制,比如一个房间只能有两个号,这样的话你就可以把一个表按两个处理,left   join即可,如果一个房间最多三个号就要做三个表  
  不过这样不太灵活  
   
  还是在程序里来实现吧,一遍循环搞定,灵活+   very   muchTop

2 楼TianChong(*︿_︿* ○Ооo○泡泡oо㊣VC高手群:2997669)回复于 2006-03-18 23:34:33 得分 10

很难实现,一句是绝对实现不了的,不过如使用存储过程还是有可能的,但怎么都不如程序处理方便.不建议使用SQL处理.一定效率低下.Top

3 楼xiaolongjy(小龙)回复于 2006-04-25 18:53:14 得分 5

各位大大   把实现过程写出来   也好让小弟们景仰啊Top

4 楼yangshunying()回复于 2006-04-25 20:39:09 得分 5

写个存储过程来实现Top

5 楼renwanly(★★★★)回复于 2006-04-25 21:00:01 得分 20

1.创建函数  
  CREATE   FUNCTION   dbo.uf_TEST   ()  
  RETURNS   @RTN   TABLE   (  
  room   varchar(50),  
  zhanghao   varchar(255))   AS      
  BEGIN    
                  declare   @room   varchar(50);  
                  declare   @zhanghao   varchar(255);  
                  declare   cur   cursor   for   select   distinct   room   from   table1;  
                  open   cur;  
                  FETCH   NEXT   FROM   cur   INTO   @room   ;  
                  WHILE   @@FETCH_STATUS   =   0  
                  BEGIN  
          set   @zhanghao   =''  
          select   @zhanghao   =@zhanghao   +','+zhanghao    
          from   table1   m  
          where   m.room=@room  
   
          UPDATE   @RTN   set   zhanghao=case   when   len(@zhanghao)>0   then   right(@zhanghao,len(@zhanghao)-1)   end  
                          where   room   =   @room;  
                          FETCH   NEXT   FROM   cur   INTO   @room   ;  
                  END  
                  CLOSE   cur;  
                  DEALLOCATE   cur;  
  END  
   
  RETURN    
  END  
  go  
  2.通过下面SQL创建Dw  
  SELECT   *   FROM   uf_TEST()Top

相关问题

  • SQL语句如何实现......
  • 如何实现?sql语句
  • sql语句能实现吗?
  • 实现一条SQL语句
  • sql语句如何实现?
  • SQL语句的实现!!!
  • SQL语句的实现!!!
  • 请问我的SQL语句还要如何改动才能实现我的要求??
  • 如何实现这样的SQL语句?
  • 用一个SQL语句能实现吗?

关键词

  • zhanghao
  • 实现
  • room
  • 表
  • cur
  • varchar
  • declare
  • table

得分解答快速导航

  • 帖主:motoc
  • njchf
  • TianChong
  • xiaolongjy
  • yangshunying
  • renwanly

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo