原表编号    状态    姓名
1        O      张三
2        O      李四
3        A      王五
4        C      赵六
5        A      田七查询表编号    状态    姓名
1       正常    张三
2       正常    李四
3       已结    王五
4       作废    赵六
5       已结    田七O 正常
A 已结
C 作废想通过一条select语句从“原表”生成“查询表”中的数据,如何实现?
生成的表是否还能够更新“状态”字段?如何更新?

解决方案 »

  1.   

    如果是AdoDataSet的话,可以通过字段的GetText和SetText事件来处理的。
      

  2.   

    如果查询的时候,就想处理的话,得用Case语句吧!
    oracle是:
    select case fieldname when 'O' then '' when 'A' then '' when 'C' then '' end as 字段名
    from tablename
      

  3.   

    建议使用TField的GetText和SetText事件
      

  4.   

    1、参考case when
    2、想要怎么更新?
      

  5.   

    你把状态表做成字典表进行联接查询。
    第二种:
    create table a(id integer,status char(1),name varchar(10))
    insert into a values(1,'O','张三')
    insert into a values(2,'O','李四')
    insert into a values(3,'A','王五')
    insert into a values(4,'C','赵六')
    insert into a values(5,'A','田七')select id '编号',s= case when status='O' then '状态'
    when status='A' then '已结'
    when status='C' then '作废' end,name
    from a
    group by id,name,status
      

  6.   

    在adoquery的ongettext事件和onsettext事件里写代码控制。
    ongettext
    if sender.value = 'o' then text := '正常';
    ...........
      

  7.   

    select id [编号],[状态]= case when status='O' then '正常'
    when status='A' then '已结'
    when status='C' then '作废' end,name[姓名]
    from a
      

  8.   

    想通过一条select语句从“原表”生成“查询表”中的数据,如何实现?
    生成的表是否还能够更新“状态”字段?如何更新?
    ===================如果想更新,只用使用TField的GetText和SetText事件来处理了.
      

  9.   

    建立基础表:
    O 正常
    A 已结
    C 作废然后两个数据表连接查询就行了,不熟悉连接查询,就用“视图”