Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1266935
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2009-05-12 16:04:35



有表A  
   
  A         B           C  
   
  中       1        
  国       2  
  首       3  
  都       4  
  北       5  
  京       6  
   
   
  求一sql语句实现  
  把所有记录的一个字符串字段自动连接  
  如上表用一条查询语句最终实现‘中国首都北京’  
  多谢了

设表名为T1(表名为A会与别名冲突),以下SQL可得到你要的  
  select   a.a+b.a+c.a+d.a+e.a+f.a   as   aa   from   t1   a,t1   b,t1   c,t1   d,t1   e,t1   f   where   a.b=b.b-1   and   b.b=c.b-1   and   c.b=d.b-1   and   d.b=e.b-1   and   e.b=f.b-1  
  但这种做法远远没有用程序实现简单高效  
 

程序的话:  
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      s:string;  
  begin  
      s:='';  
    with   ADOQuery1   do  
    begin  
          sql.Text:='select   a   from   t1   order   by   b';  
          open;  
          while   not   eof   do  
          begin  
              s:=s+FieldByName('a').AsString;  
              next;  
          end;  
    end;  
    ShowMessage(s);  
  end;

同意楼上的,我再给个存储过程:  
   
   
  select   @count=count(*)   from   T1  
  declare   @i   int  
  set   @i=1  
  declare   @str   varchar(8000)  
  set   @str=''  
  while   @i<=@count  
  begin    
      select   @str=@str+B   from   T1   where   c=@i  
      set   @i=@i+1  
  end  
   
  select   @str

用SQL真实不好实现  
  但我的表字段也没有规律,B列是不确定的字符,不一定是1,2,3...,并且记录数还不是确定的  
  A         B           C  
   
  中       qq        
  国       ee  
  首       qwr  
  都       rety  
  北       dfg  
  京       trf  
  和       kjk  
  a         sdfs  
   
  我的本意是查询,给一个字符串参数,比如‘首’,我要把这个表的A字段组合起来,查参数‘首’是否在这个表的A字段组合中,也就是给的参数是否在‘中国首都北京’中,要是用存储过程的话怎么写?效率比程序高吗?  
   
 

你查参数是否在A的字段组合中与查询参数是否在A上有区别吗?  
   
  设表为temp,SELECT   A   FROM   TEMP   WHERE   :P=A,这样难道查不出参数是否在A列上?



--------------------------
新闻:微软触控平台Surface SP1发布
网站导航: 博客园首页  新闻  .NET频道  社区  博问  闪存  找找看
阅读(497) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~