转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

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

1 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

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

1 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. Java 反射机制详解(上)

    一.什么是反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java ...

  2. 第四章之S5PV210内存初始化

    1,既然UART可以打印出信息来,那我们可以打印内存中的值.在506行添加如下代码: /***UART transmit function by xu ***/ display_addr_dat: l ...

  3. B - Crossword solving

    Erelong Leha was bored by calculating of the greatest common divisor of two factorials. Therefore he ...

  4. Java-String 类的常用方法

    Java 中 String 类的常用方法 Ⅰ String 类提供了许多用来处理字符串的方法,例如,获取字符串长度.对字符串进行截取.将字符串转换为大写或小写.字符串分割等,下面我们就来领略它的强大之 ...

  5. ROS学习笔记六:xxx.launch文件详解

    每当我们需要运行一个ROS节点或工具时,都需要打开一个新的终端运行一个命令.当系统中的节点数量不断增加时,每个节点一个终端的模式会变得非常麻烦.那么有没有一种方式可以一次性启动所有节点呢?答案当然是肯 ...

  6. C++默认函数与函数重载

    一.默认参数 在C++中,可以为参数指定默认值.在函数调用时没有指定与形参相对应的实参时, 就自动使用默认参数. 默认参数的语法与使用:(1)在函数声明或定义时,直接对参数赋值.这就是默认参数: (2 ...

  7. DFS Codeforces Round #306 (Div. 2) B. Preparing Olympiad

    题目传送门 /* DFS: 排序后一个一个出发往后找,找到>r为止,比赛写了return : */ #include <cstdio> #include <iostream&g ...

  8. Android 线程池系列教程(5)与UI线程通信要用Handler

    Communicating with the UI Thread 上一课 下一课 1.This lesson teaches you to Define a Handler on the UI Thr ...

  9. Mac下部署与启动STF

    一.stf在Mac下的部署1.安装Java及jdk可自己谷歌(如果不能自建云梯)2.安装nodejs包(我是直接在官网下载的LTS版本) • Node.js v8.12.0 to /usr/local ...

  10. windows server 2008 r2 IIS7下网站配置 只允许指定的IP地址访问

    步骤一.找到ip地址和域限制 步骤二.添加全部拒绝 步骤三.添加允许访问的ip地址(局域网填写局域网ip,公网填写公网ip)  步骤四:如果想要拒绝某些ip访问,直接在规则中添加拒绝条目就可以