转http://blog.csdn.net/shl7765856/article/details/7622756

查询数据的时候。

SQL Server 默认 不区分大小写。 如果要区分,就要额外的设置。

oracle 默认 区分大小写。如果不要区分,就要额外的设置。

下面就是 Oracle 的明细部分了。

首先是测试表/数据

SQL> CREATE TABLE tab ( id  INT,val VARCHAR2(10));

表已创建。

SQL> INSERT INTO tab  values (1, 'ABC123'),(2, 'abc234'),(3, 'Abc345'),(4, 'aBC456'),(5, 'aBc567')

已创建5行。

 =操作的例子

SQL> SELECT * FROM   tab WHERE  val = 'abc123';

无查询结果

SQL> SELECT   *  FROM  tab WHERE   val = 'ABC123'; 

查询结果

ID VAL

---------- ----------

ABC123

由上面的结果可以看出,默认情况下,Oracle 大小写敏感的。

下面通过设置环境变量,让Oracle对大小写不敏感

SQL> ALTER SESSION SET NLS_COMP=ANSI;

会话已更改。

SQL> ALTER SESSION SET NLS_SORT=binary_ci;

会话已更改。

SQL> SELECT  *  FROM tab WHERE val = 'abc123';

ID VAL

---------- ----------

ABC123

 

LIKE操作的例子

SQL> SELECT  * FROM tab  WHERE val LIKE 'a%';

ID VAL

---------- ----------

2 abc234

4 aBC456

5 aBc567

默认是大小写敏感。

SQL> ALTER SESSION SET NLS_COMP=ANSI;

会话已更改。

SQL> ALTER SESSION SET NLS_SORT=binary_ci;

会话已更改。

会话更改以后,条件是  val = 的,可以实现大小写不敏感

但是对于 val LIKE 的查询,还是大小写敏感的。

解决办法,使用正则表达式的方式来变通的处理。

SQL> SELECT  * FROM   tab  WHERE  REGEXP_LIKE (val, '^a', 'i');

ID VAL

---------- ----------

1 ABC123

2 abc234

3 Abc345

4 aBC456

5 aBc567

注1:REGEXP_LIKE 的第3个参数'i' 表示大小写敏感。

注2:对于环境变量NLS_COMP 与NLS_SORT的设置,会影响REGEXP_LIKE 执行的结果(假如第3个参数不填写的话)。

默认情况下:

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'); ID VAL ---------- ---------- 1 一 2 二 3 三 5 五 6 人 7 十 4 四 8 土 9 士 已选择9行。

Oracle 实现查询不区分大小写(设置数据库)的更多相关文章

  1. Oracle 实现查询不区分大小写(SQL实现)

    转为小写  LOWER('ABC') 结果 abc转为大写  UPPER('aBc') 结果 ABC 将数据库字段数据和前台接受的值全部转换为大写或者小写 例: select * from table ...

  2. Oracle中查询当前数据库中的所有表空间和对应的数据文件语句命令

    Oracle中查询当前数据库中的所有表空间和对应的数据文件语句命令 ------------------------------------------------------------------ ...

  3. 45 个非常有用的 Oracle 日期查询语句

    日期/时间 相关查询 获取当前月份的第一天 运行这个命令能快速返回当前月份的第一天.你可以用任何的日期值替换 “SYSDATE”来指定查询的日期. SELECT TRUNC (SYSDATE, 'MO ...

  4. 各种oracle参数查询语句

    各种oracle参数查询语句 1.show parameter:--显示各个系统参数配置 2.select * from v$parameter;--显示各个系统参数配置 2.show paramet ...

  5. Oracle树查询及相关函数

    Oracle树查询的最重要的就是select...start with... connect by ...prior 语法了.依托于该语法,我们可以将一个表形结构的中以树的顺序列出来.在下面列述了Or ...

  6. oracle提高查询效率的34条方法

    注:本文来源:远方的守望者  <oracle提高查询效率的34条方法> oracle提高查询效率的34条方法 1.选择最有效率的表名顺序 (只在基于规则的优化器中有效): ORACLE的解 ...

  7. Oracle之 dmp导入/导出、数据库操作等过程中的字符集问题

    影响Oracle数据库字符集最重要的参数是NLS_LANG参数. 它的格式如下: NLS_LANG = language_territory.charset 它有三个组成部分(语言.地域和字符集),每 ...

  8. Oracle日常运维操作总结-数据库的启动和关闭

    下面是工作中对Oracle日常管理操作的一些总结,都是一些基本的oracle操作和SQL语句写法,在此梳理成手册,希望能帮助到初学者(如有梳理不准确之处,希望指出). 一.数据库的启动和关闭 1.1 ...

  9. Oracle(限定查询1)

    3.1.认识限定查询 例如:如果一张表中有100w条数据,一旦执行了“SELECT * FROM 表”语句之后,则将在屏幕上显示表中的全部数据行的记录,这样即不方便浏览,也有可能造成死机的问题出现,所 ...

随机推荐

  1. 【原创】CentOS 6.5 中安装 Mysql 5.6,并远程连接Mysql

    ι 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.在安装CentOS时,若选择的是Basic Server(可支持J2EE开发),则新安装好的CentOS系统中默认是已经安装了一个mysq ...

  2. SqlParameter 的使用

    SqlParameter[] sqlParams = new SqlParameter[2];sqlParams[0] = new SqlParameter("@RoleId", ...

  3. java启动参数一

    java启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足, ...

  4. [IOI1998]Picture

    Description 在一个平面上放置一些矩形,所有的边都为垂直或水平.每个矩形可以被其它矩形部分或完全遮盖,所有矩形合并成区域的边界周长称为轮廓周长. 要求:计算轮廓周长. 数据规模: 0≤矩形数 ...

  5. 用java打印输出九九乘法表

    package com.wh.multiplication public class Multiplication Table { public static void main(String[] a ...

  6. ORA-00020: maximum number of processes (300) exceeded

    SQL> select count(*) from v$session; COUNT(*)---------- 98 SQL> select count(*) from v$process ...

  7. Java socket1

    注意: 网络编程不是等于网站编程.  html css JavaScript那些是网站编程,是构建在网络编程的基础之上的,网络编程是它的底层.    比方说qq,联动的游戏,这些是网络编程. 一般的网 ...

  8. Netflix正式开源其API网关Zuul 2--转

    微信公众号:聊聊架构 5 月 21 日,Netflix 在其官方博客上宣布正式开源微服务网关组件 Zuul 2.Netflix 公司是微服务界的楷模,他们有大规模生产级微服务的成功应用案例,也开源了相 ...

  9. js中,浏览器中不同元素位置属性解析

    offset()   只对可见元素有效,获取匹配元素在当前视口的相对偏移,返回的对象有两个整型属性,top和left,像素计算: position() 相对父元素的偏移,position.left   ...

  10. select * from a, b的意思

    其结果中总记录数为a表记录数乘以b表记录数,a的每条记录都会重复列出b记录总数次 很多晦涩的sql都要通过测试具体的数据来理解