adoquery2.SQL.text:='select 
back_code =case back_key when "0" then "能来" WHEN 1 THEN "不能来" when "2" then "生病" END ' +  (运行后这里报错)
        'from pub_expert_history where expert_name=:n1';
adoquery2.Parameters.ParamByName('n1').Value:=trim(tv.Selected.Text);
adoquery2.open;在DELPHI里CASE 后面应该怎么写………………小弟在线等……

解决方案 »

  1.   

    你那不是SQL里的CASE吗?
    如果放到代码里可以这样with adoquery2 do begin
      sql.clear;
      sql.add('SELECT BACK_CODE FROM pub_expert_history where expert_name='+''''+TV.SELECTED.TEXT+'''');
      OPEN;
    end;
    case adoquery2.FieldByName('BACK_CODE').asinteger of
      0:
      1:
      2:
    end;
      

  2.   

    select * ,
    case 字段 when 0  then '能來'
                      when 1 then '不能來'
                      when 2  then '生病'
    end as 新字段
    from 表名
    where 倏件
      

  3.   

    如果你的back_key是整型
    adoquery2.SQL.text:='select 
    back_code =case back_key when 0 then ''能来'' WHEN 1 THEN ''不能来'' when 2 then ''生病'' END '注意引号,是两个单引号
      

  4.   

    我也用了这个,可是我不知道用DBGRID的哪个属性接返回的值…………
      

  5.   

    adoquery2.SQL.text:='select back_code =case back_key when 0 then ''能来'' WHEN 1 THEN ''不能来'' when 2 then ''生病'' END from pub_expert_history where expert_name=:n1';是不是后面的引号有问题,这个语句应该是没有问题的
      

  6.   

    我是BACK_KEY 定义的是CHAR()型
      

  7.   

    adoquery2.SQL.text:='select back_code =case back_key when ''0'' then ''能来'' WHEN ''1'' THEN ''不能来'' when ''2'' then ''生病'' END from pub_expert_history where expert_name=:n1';