ITPub博客

首页 > 数据库 > Oracle > PLSQL Language Reference-PL/SQL语言基础-表达式-比较操作符

PLSQL Language Reference-PL/SQL语言基础-表达式-比较操作符

原创 Oracle 作者:luisedalian 时间:2014-03-07 08:37:34 0 删除 编辑

比较操作符

比较的结果可以是TRUE、FALSE和NULL。

(1)关系操作符

n  算术比较

n  BOOLEAN比较,TRUE > FALSE,与NULL的比较结果都为NULL。

n  字符比较,默认情况下按字符序比较,后面的大。

字符串是按字符比较。

如果设置初始化参数NLS_COMP=ANSI,则字符串的比较会使用根据NLS_SORT初始化参数的对照顺序。

对照顺序:是一个字符集的内部顺序,在字符集中一定范围的数字代表单个字符。

如果一个字符的内部数字值大,则该字符就大。每一种语言对于字符出现在对照顺序中的位置都有不同的规则。

例,对于不同的字符集,音标有不同的排序,尽管在不同的字符集中它们的二进制值是相同的。

为了使比较不区分大小写,可以在NLS_SORT参数后面加_CI,例BINARY_CI or XGERMAN_CI;

不区分重音的比较是不区分大小写的,并且把重音或发音不同的字母认为是相同的;

为了使比较不区分重音,可以在NLS_SORT参数后面加_AI,例BINARY_AI or XGERMAN_AI。

n  日期比较,后面的日期大

(2)IS [NOT] NULL操作符

(3)LIKE操作符,将字符、字符串或CLOB值与一个模式进行比较。模式中可以合适2个通配符。_匹配一个字符;%匹配0个或多个字符。比较时区分大小写。

DECLARE

    PROCEDURE compare (

        value   VARCHAR2,

        pattern VARCHAR2

    ) IS

    BEGIN

        IF value LIKE pattern THEN

            DBMS_OUTPUT.PUT_LINE ('TRUE');

        ELSE

            DBMS_OUTPUT.PUT_LINE ('FALSE');

        END IF;

    END;

BEGIN

    compare('Johnson', 'J%s_n');

    compare('Johnson', 'J%S_N');

END;

 


 

DECLARE

    PROCEDURE half_off (sale_sign VARCHAR2) IS

    BEGIN

        --模式中的转义字符

        IF sale_sign LIKE '50\% off!' ESCAPE '\' THEN

            DBMS_OUTPUT.PUT_LINE ('TRUE');

        ELSE

            DBMS_OUTPUT.PUT_LINE ('FALSE');

        END IF;

    END;

BEGIN

    half_off('Going out of business!');

    half_off('50% off!');

END;

(4)BETWEEN操作符


 

(5)IN操作符

DECLARE

    a INTEGER;              --默认初始化为NULL

    b INTEGER := 10;

    c INTEGER := 100;

BEGIN

    print_boolean ('100 IN (a, b, c)', 100 IN (a, b, c));

    print_boolean ('100 NOT IN (a, b, c)', 100 NOT IN (a, b, c));

 

print_boolean ('100 IN (a, b)', 100 IN (a, b));

    print_boolean ('100 NOT IN (a, b)', 100 NOT IN (a, b));

 

    print_boolean ('a IN (a, b)', a IN (a, b));

    print_boolean ('a NOT IN (a, b)', a NOT IN (a, b));

END;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1102790/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    6043828