下面是在查询分析器中的写法,如何转换成ADOQuery1.SQL.Add('');中的内容啊,这括号都整蒙了。谁帮忙翻译一下,先谢了declare @str varchar(4000)
set @str=''
select @str=@str+','+leibie+
'=sum(case when leibie='+QUOTENAME(leibie,'''')+' then shuliang else 0 end)'
from temp1
group by leibie
print @str
set @str='select * into temp3 from (select jiagongdanhao '+@str+' from temp1 group by jiagongdanhao) a'
print @str
exec(@str)

解决方案 »

  1.   

    var
      leibie:string;
    begin
      ADOQuery1.Close;
      leibie:='输入变量值';
      leibie:='sum(case when leibie=QUOTENAME('+leibie+','''') then shuliang else 0 end) as x';
      leibie:='select * into temp3 from (select jiagongdanhao, '+leibie+' from temp1 group by jiagongdanhao) a';
      ADOQuery1.SQL.Text:=leibie;
    end;
      

  2.   

    简单的说,Delphi程序中拼SQL语句:
    变量这样表示 '''+tim(变量A)+''',
    表名,字段名  '+表名A+',
    空格用 ''''
    楼主发现规律了么?  :)
    以上只是个人习惯而已。
      

  3.   

    delphi字符串拼接两个''单引号相当于SQL 中的一个'LZ试下Showmessage('''');就知道了,其它没什么不同