PLSQL Language Reference-PL/SQL語言基礎-表示式-比較操作符

LuiseDalian發表於2014-03-07

比較操作符

比較的結果可以是TRUEFALSENULL

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  日期比較,後面的日期大

2IS [NOT] NULL操作符

3LIKE操作符,將字元、字串或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;

4BETWEEN操作符


 

5IN操作符

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部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1102790/,如需轉載,請註明出處,否則將追究法律責任。

相關文章