select decode(字段,1,'就餐',2,'购物',3,'交费',............) from tbname

解决方案 »

  1.   

    假设我的表名是JYLS交易流水一共有3个字段:交易时间JYSJ,交易金额JYJE,交易类型JYLX
    那么,楼上的是否是说应该这么写呢?
    select JYSJ,JYJE,decode(JYLX,'就餐',2,'购物',3,'交费',............)  from JYLS
    请问decode是不是一个Oracle支持的函数?在其他数据库中有类似的函数吗?
      

  2.   

    decode是oracle特有的函数,在其他数据库中有函数可以实现这个功能.
    select JYSJ,JYJE,decode(JYLX,1,'就餐',2,'购物',3,'交费',............)  from JYLS
    才对,少了个 1
      

  3.   

    对了,忘记再问一下: idealistt(风过) 
    你说的用两个表关联查询是比较好的解决了以后的类型动态增加的问题,但是新带来的问题是两个表的关联查询效率要低的多啊?
      

  4.   

    看了上面的一些回答,觉得有必要澄清一下:
    1、使用表关联的效率是不低的,因为有索引存在(如果表很小,甚至不需要索引)。
    2、Decode是一个老的ORACLE函数,从9i开始也可以使用case来实现。
    3、在MSSQL中可以使用case来实现相同功能。
    4、使用表存放名称的做法是对的,这样允许最终用户修改名称以定制报表。