Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra CQL3 order by语句首先对大写字符串进行排序_Cassandra_Cql3 - Fatal编程技术网

Cassandra CQL3 order by语句首先对大写字符串进行排序

Cassandra CQL3 order by语句首先对大写字符串进行排序,cassandra,cql3,Cassandra,Cql3,我发现我的CQL3 order by语句返回了奇怪的结果,其中任何以大写字母开头的字符串都是先排序的,然后是小写字符串 下面是一个示例表: CREATE TABLE tester (rowkey text, colname text, colvalue text, primary key (rowkey, colname)) WITH COMPACT STORAGE; 如果我用一些测试数据填充它并运行以下查询,我得到的就是: 查询: SELECT * FROM tester WHERE r

我发现我的CQL3 order by语句返回了奇怪的结果,其中任何以大写字母开头的字符串都是先排序的,然后是小写字符串

下面是一个示例表:

CREATE TABLE tester 
(rowkey text, colname text, colvalue text, primary key (rowkey, colname)) 
WITH COMPACT STORAGE;
如果我用一些测试数据填充它并运行以下查询,我得到的就是:

查询:

SELECT * FROM tester WHERE rowkey = 'test' ORDER BY colname ASC
结果:

rowkey | colname | colvalue
-------+---------+---------
test   | ABC     | blah
test   | Abc     | blah
test   | BBC     | blah
test   | abc     | blah
test   | bbC     | blah
test   | bbc     | blah

我看不出人们会怎么想。有人知道它为什么会这样排序,以及如何实现更合理的顺序吗?

您的列是按字典顺序排序的,其中大写字符优先于小写字符

您的列按字典顺序排序,其中大写字符优先于小写字符

那么,有没有一种方法可以对列ABC、ABC、ABC、BBC、BBC进行排序呢?也许我遗漏了一些东西,但我的列似乎更像是按二进制表示排序顺序排序的,而不是按字典排序的。记住并非每个人都使用相同的字符或具有相同的顺序是很有帮助的,这有助于解释为什么它可能没有明显的意义。创建不区分大小写的排序是可能的,但到目前为止还没有吸引多少开发人员的兴趣。那么,有没有一种方法可以对列ABC、ABC、ABC、BBC、BBC进行排序呢?也许我遗漏了一些东西,但我的列似乎更像是按二进制表示排序顺序排序的,而不是按字典排序的。记住并非每个人都使用相同的字符或具有相同的顺序是很有帮助的,这有助于解释为什么它可能没有明显的意义。创建不区分大小写的排序是可能的,但到目前为止还没有吸引多少开发人员的兴趣。