比较的结果可以是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/ ,如需转载,请注明出处,否则将追究法律责任。