SQL> SELECT * FROM tab WHERE REGEXP_LIKE (val, '^a');
ID VAL
---------- ----------
2 abc234
4 aBC456
5 aBc567
ALTER SESSION SET … 之后
SQL> SELECT * FROM tab WHERE REGEXP_LIKE (val, '^a');
ID VAL
---------- ----------
1 ABC123
2 abc234
3 Abc345
4 aBC456
5 aBc567
排序的例子
SQL> SELECT * FROM Tab ORDER BY val;
ID VAL
---------- ---------
1 ABC123
3 Abc345
4 aBC456
5 aBc567
2 abc234
默认排序为大小写敏感
SQL> ALTER SESSION SET NLS_COMP=ANSI;
会话已更改。
SQL> ALTER SESSION SET NLS_SORT=binary_ci;
会话已更改。
SQL> SELECT * FROM Tab ORDER BY val;
ID VAL
---------- ----------
1 ABC123
2 abc234
3 Abc345
4 aBC456
5 aBc567
关于中文汉字的排序
SQL> TRUNCATE TABLE Tab;
表被截断。
复制代码
SQL> INSERT INTO tab
SELECT 1, '一' FROM DUAL UNION ALL
SELECT 2, '二' FROM DUAL UNION ALL
SELECT 3, '三' FROM DUAL UNION ALL
SELECT 4, '四' FROM DUAL UNION ALL
SELECT 5, '五' FROM DUAL;
已创建5行。
SQL> commit;
提交完成。
-- 按照拼音来排序
SQL> SELECT * FROM Tab ORDER BY NLSSORT(val, 'NLS_SORT=SCHINESE_PINYIN_M');
ID VAL
---------- ----------
2 二
3 三
4 四
5 五
1 一
-- 按照笔画数来排序
SQL> SELECT * FROM Tab ORDER BY NLSSORT(val, 'NLS_SORT=SCHINESE_STROKE_M');
ID VAL
---------- ----------
1 一
2 二
3 三
5 五
4 四
-- 按照偏旁部首来排序
SQL> INSERT INTO tab
SELECT 6, '人' FROM DUAL UNION ALL
SELECT 7, '十' FROM DUAL UNION ALL
SELECT 8, '土' FROM DUAL UNION ALL
SELECT 9, '士' FROM DUAL;
已创建4行。
SQL> commit;
提交完成。
SQL> SELECT * FROM Tab ORDER BY NLSSORT(val, 'NLS_SORT=SCHINESE_RADICAL_M');