您的位置:首页 > 数据库 > Oracle

ORACLE SQL语句中的“SWITCH语句”函数DECODE

2012-08-16 10:59 369 查看
下面这个例子介绍ORACLE SQL Functions对DECODE函数的用法,引自官方文档

SELECT product_id,

       DECODE (warehouse_id, 1, 'Southlake',

                             2, 'San Francisco',

                             3, 'New Jersey',

                             4, 'Seattle',

                                'Non domestic')

       "Location of inventory" FROM inventories

       WHERE product_id < 1775;

       

       判断每个满足条件的记录的warehouse_id,等于1,则返回'Southlake'...依次类推, 最后一个'Non domestic'是默认值。

功能跟跟SWITCH CASE很类似,但JAVA中的SWITCH条件是“Only int values or enum constants are permitted”所以JAVA中直接用字符串是不可以作SWITCH条件的必须转换为枚举型。

代码如下:

/**

 * @author Milo

 *

 */

public class SwitchTest {

   

    public enum EnumType {YachunMiao, SanZhang}

    /**

     *

     * @param args

     */

    public static void main(String[] args) {

        // TODO Auto-generated method stub

       

        switch (EnumType.YachunMiao) {

        case YachunMiao:

            System.out.println("YachunMiao");

            break;

        case SanZhang:

            System.out.println("SanZhang");

            break;

        default:

            System.out.println("SiLi");

        }

    }

}

但ORACLE的DECODE函数可以直接用字符串条件!

例如:

       SELECT DECODE(SUBSTR('MIAOYACHUN',1, 4), 'MIAO', 'It is MIAO!','It is not MIAO!') FROM DUAL;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息