我正在处理一个Oracle SQL查询,我试图以一种特定的方式对我的数据进行排序。
我希望对数据进行排序时不区分大小写,但要在小写字母之前显示小写字母。
例如,我希望“苹果”在“苹果”之前。
下面是一个想要的排序顺序的例子:
Apple
apple
Banana
banana
Bananb
Grape
orange
Pineapple
这是我的查询:
SELECT column_name
FROM your_table
ORDER BY NLSSORT(column_name, 'NLS_SORT=BINARY_AI');
2条答案
按热度按时间ztigrdn81#
一种选择是按同一列排序两次;第一时间力,例如 * *(所以所有的苹果在所有的香蕉之前,所有的葡萄之前......),然后应用
NLS_SORT
:样本数据:
查询方式:
4dbbbstv2#
您可以先不区分大小写排序一次,然后再区分大小写排序:
或:
其中,对于样本数据:
两个输出:
| 列名称|
| --|
| 苹果|
| 苹果|
| 香蕉|
| 香蕉|
| 巴南布|
| 葡萄|
| 橙子|
| 菠萝|
fiddle