在SQL中,select top 10 * from sf_view where sfmonth in (200704,200702)
在想在DELPHI中定义IN中的字符串str:stringstr是动态得到的
要实现  select top 10 * from sf_view where sfmonth in ('+str+')请指教
注:str是动态得到的字符串
另:qq群:19877329

解决方案 »

  1.   

    你说的不太祥细,什么类型也没有说.给你个例子.
    希望对你有所帮助
    USE pubs
    SELECT pub_name
    FROM publishers
    WHERE pub_id in ('1389', '0736')
      

  2.   


    str 动态取得
    如果是字竹符的话就
    比如
    str := '''' + '010101,010102' + '''';
    如果是数字的话
    str := '1,2,3';ADOQuery.SQL.Clear();
    ADOQuery.SQL.ADD('select top 10 * from sf_view where sfmonth in (' + str + ')');
    ADOQuery.Active := True;应该就可以了。
    你的那个群交流什么的?
      

  3.   

    你的字符串必须要有引号相间隔
    必须为 '200','1984','2501'等等,写个函数,重置Str
    函数如下
    function SetStr(str: string): string;
    var
      ipos: integer;
    begin
      str := str+',' ;
      while str<>'' do
      begin
        ipos := pos(',',str);
        result := result +''''+ copy(str,1,ipos-1)+''',';
        str := Copy(str,ipos+1,length(str)-ipos);
      end;
      delete(result,length(result),1);
    end;
      

  4.   

    不好意思我第一个初始化确实是写错了!
    还真要谢谢suiyunonghen!