求一简单SQL语句

求一简单SQL语句 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061216115320272.html
有表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列上?

posted on 2009-05-12 16:00  delphi2007  阅读(204)  评论(0编辑  收藏  举报