我的数据库 查询出来的 id code count三个字段
code 里面有两种值 一个是 dept deptcode
我想判断如果code 得到的是code=deptcode直接替换成 dept反正就是让dept 和deptcode合并

解决方案 »

  1.   

    select id, decode(code,'deptcode','dept') code,count from dual
      

  2.   


    select id,decode(code,'deptcode','dept'),count from tablename
    --count是oracle关键字最好不要用来做字段名
    select id,(case when code='deptcode' then 'dept' else code end),count from tablename--按照你说的code只有deptcode和dept两个值
    --如果code 得到的是code=deptcode直接替换成 dept
    --那么不就是?
    select id,'dept',count from tablename
      

  3.   

    说的多全面啊,decode(),case when then ,都说到了。
    是我的理解有问题么,我怎么感觉你是要更新呢
    update tablename set code='dept' where code = 'deptcode';
      

  4.   

    如果code 里面只有两个值 “dept”“deptcode”的话,上面的回答足够了。
    如果code里面是有两类值,一类是dept中文名称、一类是dept代码的话,就需要在查询时转换一下。
    本机没DB,只能简单写下思路了。--有代码表codetable,存放dept中文名称(deptname)和dept代码(deptcode)的对应关系
    select id,NVL((SELECT deptname from codetable ca where tn.code = ca.deptcode),tn.code) as dept,count from tablename tn;
      

  5.   


    --仔细查下 case (mssql ,oracle 调用)--decode (oracle)decode(code,'deptcode','dept','dept')
      

  6.   

    select id, decode(code,'deptcode','dept','dept') code, count from tab
    --PS:你写的问题自己真能读通吗?还是贴出愿望数据比较好