oracle 查询账号oracle order by指定顺序—decode函数

oracle order by指定顺序—decode函数

 

SQL语句中 

  www.2cto.com  

order by  可以按照指定的顺序排序否 

 

比如 记录中 某字段值   NCH  HCH   ACS   TWN…. 

 

ORDER BY DECODE(col,'NCH','1','HCH','2','ACS','3','TWN','4',col) 

 

col代表某列查出来的数据. 

 

Oracle 中 decode 函数用法 

  www.2cto.com  

含义解释: 

decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值) 

 

该函数的含义如下: 

IF 条件=值1 THEN 

    RETURN(翻译值1) 

ELSIF 条件=值2 THEN 

    RETURN(翻译值2) 

    …… 

ELSIF 条件=值n THEN 

    RETURN(翻译值n) 

ELSE 

    RETURN(缺省值) 

END IF 

  www.2cto.com  oracle账号

decode(字段或字段的运算,值1,值2,值3) 

 

       这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3 

当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多 

 

使用方法: 

 

1、比较大小 

select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; –取较小值 

sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1 

例如: 

变量1=10,变量2=20 

则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。

此条目发表在oracle metalink账号分类目录,贴了标签。将固定链接加入收藏夹。