但是在不同的数据库版本中,NLSSORT函数的行为可能有所不同。 在Oracle 10g及更早版本中,NLSSORT函数的行为是根据NLS_SORT参数的设置来确定的。如果NLS_SORT参数设置为BINARY,则NLSSORT函数会将字符串按照字节顺序进行排序。如果NLS_SORT参数设置为其他值(比如NLS_SORT=Chinese_PRC),则NLSSORT函数会根据相应的排序规则对...
You must use the NLS_SORT operator with comparison operations if you want the linguistic sort behavior. 根据上文中标红部分的注视,如果NLS_SORT不是设置为"Binary",那么就会引起全表扫描,是不会使用索引的,在我们的系统中变更单涉及到的数据都是数据庞大的表,如果不使用到索引,查询的效率不受到影响才怪呢!
1、语法: NLSSORT(string, 'nlsparam', 'nls_sort') 2、参数说明: string:需要排序的字符串。 nlsparam:指定字符串的语言环境参数。 nls_sort:指定排序方式,可以是BINARY(二进制排序)或ALPHABETIC(字母顺序排序)。 3、示例: SELECT NLSSORT('你', 'AL32UTF8', 'NLS_SORT=SCHINESE_PINYIN_M') FROM DUAL;...
前面介绍了Oracle的基本参数,从这节开始讲其他的参数,参数从v$parameter中提取 基本参数请看如下链接:http://www.zhaibibei.cn/oralce/oracle-parameter/ 如无特殊说明数据库版本为11.2 nls_sort 参数类型:字符串 语法: NLS_SORT = { BINARY | linguistic_definition } 默认值:NLS_LANGUAGE参数决定 可在会话级别修...
INSERT INTOtest_sort(NAME)VALUES('河南'); AI代码助手复制代码 默认排序结果: 默认排序以BINARY排序,即二进制排序 SQL>SELECT*FROMtest_sortORDERBYNAME; NAME---中国 北京 山西 河北 河南 湖北 陕西7rowsselected AI代码助手复制代码 拼音排序结果:
默认排序结果: 默认排序以BINARY排序,即二进制排序 SQL>SELECT*FROMtest_sortORDERBYNAME;NAME---中国 北京 山西 河北 河南 湖北 陕西7rowsselected 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 拼音排序结果: SQL>SELECT*FROMtest_sortORDER...
nlssort(string, 'NLS_SORT=sort') 其中,string是要排序的字符串,'NLS_SORT=sort'是指定的语言和排序规则。可以通过修改sort来实现不同的排序方式,常用的排序规则有: - BINARY:二进制排序方式,按照字符串中每个字符的ASCII码进行排序。 - WEST_EUROPEAN:西欧字符集排序方式,适用于英语、法语、德语等西欧语言的排序...
SQL> ALTER SESSION SET NLS_SORT=binary_ci; 对于val LIKE 的查询,还是大小写敏感的。 要执行不区分大小写的匹配,可以使用LOWER()或UPPER()函数,或使用正则表达式REGEXP_LIKE(string, regexp, [condition])的方式来处理。 condition 参数可以指定模式匹配的条件: ...
NLS_ISO_CURRENCY AMERICA NLS_SORT BINARY NLS_NUMERIC_CHARACTERS ., NLS_CHARACTERSET AL32UTF8 NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM ...
如果查询的结果字符集为ZHS16GBK/ZH16GBK,则使用order by默认是按照汉字的拼音顺序进行排序的;否则为其他(如UTF8等字符集),那么汉字的排序是按照BINARY(二进制)排序的,那么此时可以使用Oracle提供的NLS_SORT进行排序。 --查看当前数据库使用的字符集(语法) ...