Oracle NLSSORT() 函数使用指南
Oracle NLSSORT()
是一个内置函数,它返回给定字符串的排序规则键以及显式或隐式指定的排序规则。
排序规则键是根据排序规则排序字符串的字节串。归类键的属性是,当根据它们的二进制顺序进行比较时,为给定归类生成的两个这样的键的相互排序与根据给定归类进行比较时源字符值的相互排序相同。
Oracle NLSSORT()
语法
这里是 Oracle NLSSORT()
函数的语法:
NLSSORT(str [, 'nlsparam' ])
参数
str
-
必需的。它可以是
CHAR
,VARCHAR2
,NCHAR
, 或NVARCHAR2
中的任何一种数据类型。 'nlsparam'
-
可选的。您可以使用这个
'NLS_SORT = sort'
形式设置此参数,其中sort
是排序规则的名称。排序规则为大小写转换处理特殊语言的要求。如果您省略此参数,则排序规则由函数确定。
返回值
Oracle NLSSORT()
函数返回给定字符串的排序规则键以及显式或隐式指定的排序规则。
如果任意一个参数为 NULL
, NLSSORT()
将返回 NULL
。
Oracle NLSSORT()
示例
这里有几个展示了 Oracle NLSSORT()
函数用法的示例。
基本用法
SELECT
NLSSORT('HELLO'),
NLSSORT('WORLD')
FROM dual;
输出:
NLSSORT('HELLO') NLSSORT('WORLD')
___________________ ___________________
48454C4C4F00 574F524C4400
排序规则
Oracle NLSSORT()
函数允许您指定排序规则以处理特殊语言的规则。
SELECT
NLSSORT('HELLO'),
NLSSORT('WORLD', 'NLS_SORT = XDanish')
FROM dual;
输出:
NLSSORT('HELLO') NLSSORT('WORLD','NLS_SORT=XDANISH')
___________________ ______________________________________
48454C4C4F00 7A5A644B2300010101010100
排序
您可以在 SELECT
语句中使用 NLSSORT()
函数根据制定的排序规则进行排序。
首先,使用下面的 UNION
操作模拟一个数据集:
SELECT 'Gaardiner' name FROM DUAL
UNION ALL
SELECT 'Gaberd' name FROM DUAL
UNION ALL
SELECT 'Gaasten' name FROM dual;
如果您需要按照姓名生序排列,您可以使用下面的语句:
SELECT *
FROM (
SELECT 'Gaardiner' name
FROM DUAL
UNION ALL
SELECT 'Gaberd' name
FROM DUAL
UNION ALL
SELECT 'Gaasten' name
FROM DUAL
) t
ORDER BY name;
输出:
NAME
____________
Gaardiner
Gaasten
Gaberd
现在,让我们看看通过 'NLS_SORT = XDanish'
指定排序规则后发生什么:
SELECT *
FROM (
SELECT 'Gaardiner' name
FROM DUAL
UNION ALL
SELECT 'Gaberd' name
FROM DUAL
UNION ALL
SELECT 'Gaasten' name
FROM DUAL
) t
ORDER BY NLSSORT(name, 'NLS_SORT = XDanish');
输出:
NAME
____________
Gaberd
Gaardiner
Gaasten
这里,我们得到了一个完全不同的顺序。
NULL 参数
如果任意一个参数为 NULL
, NLSSORT()
将返回 NULL
。
SET NULL 'NULL';
SELECT
NLSSORT(NULL)
FROM dual;
输出:
NLSSORT(NULL)
________________
NULL
在本示例中,我们使用 SET NULL 'NULL';
语句将 NULL
值显示为 'NULL'
字符串。
结论
Oracle NLSSORT()
是一个内置函数,它返回给定字符串的排序规则键以及显式或隐式指定的排序规则。