广告
返回顶部
首页 > 资讯 > 数据库 >Oracle中文排序 NLSSORT
  • 881
分享到

Oracle中文排序 NLSSORT

2024-04-02 19:04:59 881人浏览 八月长安
摘要

今天发现了个挺有意思的函数:NLSSORT,发现能给中文按拼音、笔画、部首排序,遂查了下相关资料,结果如下:oracle 9i开始,新增了按照拼音、部首、笔画排序功能。   &

今天发现了个挺有意思的函数:NLSSORT,发现能给中文按拼音、笔画、部首排序,遂查了下相关资料,结果如下:


oracle 9i开始,新增了按照拼音、部首、笔画排序功能。

    通过设置NSL_SORT值来实现:

    SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序

    SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序

    SCHINESE_PINYIN_M 按照拼音排序


实现中文排序有两种常见方式:

  1. session级

    ALTER SESSION SET NLS_SORT='XXX';

    此结果影响整个session。

  2. sql级

    SELECT * FROM TABLE_XXX ORDER BY NLSSORT(字段名, 'NLS_SORT=XXX');


例:

CREATE TABLE test_sort(NAME VARCHAR2(50));

INSERT INTO test_sort(NAME) VALUES('中国');
INSERT INTO test_sort(NAME) VALUES('山西');
INSERT INTO test_sort(NAME) VALUES('北京');
INSERT INTO test_sort(NAME) VALUES('陕西');
INSERT INTO test_sort(NAME) VALUES('河北');
INSERT INTO test_sort(NAME) VALUES('湖北');
INSERT INTO test_sort(NAME) VALUES('河南');


默认排序结果: 默认排序以BINARY排序,即二进制排序

sql> SELECT * FROM test_sort ORDER BY NAME;

NAME
--------------------------------------------------
中国
北京
山西
河北
河南
湖北
陕西
7 rows selected


拼音排序结果:

SQL> SELECT * FROM test_sort ORDER BY NLSSORT(NAME, 'NLS_SORT=SCHINESE_PINYIN_M');

NAME
--------------------------------------------------
北京
河北
河南
湖北
山西
陕西
中国
7 rows selected


笔画排序结果:

SQL> SELECT * FROM test_sort ORDER BY NLSSORT(NAME, 'NLS_SORT=SCHINESE_STROKE_M');

NAME
--------------------------------------------------
山西
中国
北京
河北
河南
陕西
湖北
7 rows selected


部首排序结果:

SQL> SELECT * FROM test_sort ORDER BY NLSSORT(NAME, 'NLS_SORT=SCHINESE_RADICAL_M');

NAME
--------------------------------------------------
中国
北京
山西
河北
河南
湖北
陕西
7 rows selected


您可能感兴趣的文档:

--结束END--

本文标题: Oracle中文排序 NLSSORT

本文链接: https://www.lsjlt.com/news/37137.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle中文排序 NLSSORT
    今天发现了个挺有意思的函数:NLSSORT,发现能给中文按拼音、笔画、部首排序,遂查了下相关资料,结果如下:Oracle 9i开始,新增了按照拼音、部首、笔画排序功能。   &...
    99+
    2022-10-18
  • ORACLE Postgresql中文排序
    当我们order排序不能够实现我们想要的内容时候,尝试一下NLSSORT这个函数吧他不仅仅按照姓氏排序,名也会排序: nls_param用于指定语言特征,格式为nls_sort   &n...
    99+
    2022-10-18
  • python 按中文排序
    安装中文库 sudo apt-get update sudo apt-get install language-pack-zh-hans-base sudo dpkg-reconfigure locales 使用 import l...
    99+
    2023-01-31
    中文 python
  • oracle排序操作
    查询排序最多的SQL语句:WITH sql_workarea AS (SELECT sql_id || '_' || child_number sql_id_child, &nb...
    99+
    2022-10-18
  • Mysql 中文排序规则说明
    使用MySQL过程中,我们经常会对一个字段进行排序查询,我们一般都是想要按照中文拼音首字母进行依次排序,但mysql中进行中文排序的时候,对汉字的排序结果往往都是错误的。 这种情况在MySQL的很多版本中都存在。 如...
    99+
    2022-05-13
    Mysql 中文排序
  • mysql语句怎么中文排序
    mysql中使用sql语句实现中文排序的方法首先,在命令行中启动MySQL服务;service mysql start  MySQL服务启动后,在命令行中输入mysql的用户名和密码登录到MySQL;mysql -u root -p登录到M...
    99+
    2022-10-05
  • VB.NET中怎么对文件排序
    本篇文章为大家展示了VB.NET中怎么对文件排序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。VB.NET文件排序之按文件尺寸大小代码如下:Public Class Form1&...
    99+
    2023-06-17
  • mongodb中文是如何排序的
    在MongoDB中,可以使用collation选项来指定中文排序规则。通过collation选项,可以设置不同的排序规则,如大小写不...
    99+
    2023-08-30
    mongodb
  • mysql 中将汉字(中文)按照拼音首字母排序、数字和英文排序
    因为数据库中可以设定表的编码格式,不同编码格式下,中文的排序有区别,下面分别介绍常用编码下的排序方法。 1、如果数据表的某字段的字符编码是 utf8_general_ci,排序写法: ORDER BY CONVERT(表别名.字段名 US...
    99+
    2023-10-24
    mysql 数据库
  • oracle中按CPU资源消耗排序SQL
         set lines 180 set pagesize 500 col INSTANCE_NUMBER&n...
    99+
    2022-10-18
  • oracle排序要注意的点
    排序算法分稳定排序和非稳定排序。通常非稳定排序的时间复杂度更低。而在oracle中查询也要注意排序的结果集可能不是目标的结果集。1, 未指定排序规则select * from&...
    99+
    2022-10-18
  • mysql中怎么按中文拼音排序
    mysql中怎么按中文拼音排序,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 [size=large] 按照中文的拼音实现排序: Java...
    99+
    2022-10-18
  • VB.NET中怎么按文件名排序
    本篇文章给大家分享的是有关VB.NET中怎么按文件名排序,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。VB.NET文件名排序案例:输入 : a1,a2,a10,a001 。我们...
    99+
    2023-06-17
  • 字符集utf8中文排序问题
    数据库字符集: utf8排序规则:utf8_generay_ci表结构:mysql> desc chr;+------------+---------------+------+-----+-----...
    99+
    2022-10-18
  • mysql中如何设置文本排序
    mysql中设置文本排序的方法首先,在命令行中启动MySQL服务;service mysql start  MySQL服务启动后,在命令行中输入mysql的用户名和密码登录到MySQL;mysql -u root -p登录到MySQL后,选...
    99+
    2022-10-06
  • 快速掌握java排序算法-快速排序(图文)
    概念快速排序属于交换排序,主要步骤是使用基准元素进行比较,把小于基准元素的移动到一边,大于基准元素的移动到另一边。从而把数组分成两部分,然后再从这两部分中选取出基准元素,重复上面的步骤。过程如下:(推荐视频:java视频教程) 紫色:基准...
    99+
    2017-05-20
    java教程 快速排序 算法
  • 一文教你在Java中实现一个冒泡排序和快速排序
    一文教你在Java中实现一个冒泡排序和快速排序?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。冒泡排序  冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列...
    99+
    2023-05-31
    java 冒泡排序 快速排序
  • MySQL为什么不支持中文排序?
    前言 或许都知道,MySQL不支持中文排序,这样的说法可以说对也可以说也不对。接下来我们分析一下: 首先执行命令,查看编码集: SHOW VARIABLES LIKE "character_set%"; 可以看到字符集是utf8mb4,...
    99+
    2020-10-28
    MySQL为什么不支持中文排序?
  • oracle怎么根据指定字段顺序排序
    可以使用ORDER BY子句来根据指定字段进行排序。以下是一些示例:1. 升序排序:使用ASC关键字```SELECT * ...
    99+
    2023-09-09
    oracle
  • Oracle order by子句对NULL的排序
    我们都知道在Oracle SQL语句中order by 是用来排序查询出来的结果集的,而在Oracle中NULL值是一个很特殊的值,如果order by指定的列有NULL值,那排序结果又是怎样的呢。下面做一...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作