博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Oracle SQL疑难解析》——1.15 启用其他排序和比较选项
阅读量:6894 次
发布时间:2019-06-27

本文共 1019 字,大约阅读时间需要 3 分钟。

本节书摘来自异步社区出版社《Oracle SQL疑难解析》一书中的第1章,第1.15节,作者: 【美】Grant Allen , Bob Bryla , Darl Kuhn,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.15 启用其他排序和比较选项

Oracle SQL疑难解析

1.15.1 要解决的问题

文本数据由大、小写字母和句子(英文句子,指第一个字母大写,后续字母小写)组成,我们希望对之进行不区分大小写的比较、排序等操作。

1.15.2 解决方法

激活Oracle的语言比较逻辑,就能按人类的习惯来查询数据,摆脱大小写负担:

alter session set NLS_COMP='LINGUISTIC';select first_name, last_namefrom hr.employeeswhere last_name = 'smith';FIRST_NAME      LAST_NAME-------------------- -------------------------William        SMITHLindsey        Smith

本语句的查询结果是基于前面对SMITH的UPDATE操作的。如果你做练习,请不要忘了之前的UPDATE语句。

1.15.3 数据库如何工作

长期以来,人们在设计应用程序时,使用两种方法来适应Oracle对区分大小写的规定。一种方法是在应用程序逻辑中确保在数据库中保存的数据都遵循一致的原则,如我们在HR.EMPLOYEE表中看到的首字母大写原则。另一种方法是数据在数据库中另存为用户希望的形式,但在数据库和应用程序逻辑中来确保小写的差异不会体现出来。

以前这颇费周折,但现在可以轻松地实现。下面的语句不会返回任何行,因为HR.EMPLOYEES表中没有任何LAST_NAME字段值是纯小写的。

Select first_name, last_nameFrom hr.employeesWhere last_name = 'smith';no rows selected

但用了我们的小窍门,通过对会话的环境变量的设置,引导Oracle用自然语言的方式进行比较,虽然表中都是这种形式的Smith而非全小写,但NLS_COMP环境标量可以控制Oracle对字符的比较方式,设置为LINGUISTIC,可以用自然语言的方式比较,符合人类的思维习惯。

转载地址:http://zdudl.baihongyu.com/

你可能感兴趣的文章
关于微信小程序登陆的问题
查看>>
从零开始的linux 第六章
查看>>
ssh远程登录
查看>>
10.28 rsync工具介绍 10.29/10.30 rsync常用选项 10.31 rsync
查看>>
手机web页面制作时的注意事项
查看>>
LINUX系统服务与管理(Services)---------第二天
查看>>
【Docker篇之一】Docker镜像及容器
查看>>
Linux 通过配置Cobbler服务器全自动批量安装部署
查看>>
单片机编程入门学习 这几问你能回答吗?
查看>>
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或......
查看>>
【转】[行业透视] 外企九年-我最终选择放弃
查看>>
最终目标展示:一个完善的操作系统
查看>>
opencv图像融合(给人脸添加一个眼镜)
查看>>
mysql参数优化辅助工具之tuning-primer.sh
查看>>
SpringBoot之整合MyBatis
查看>>
docker 笔记
查看>>
我的友情链接
查看>>
云储存将成未来大规模视频监控储存主要模式
查看>>
添加和删除虚拟用户
查看>>
shell 变量
查看>>