有没有一种方法可以按varchar列进行数字排序,以便取反的数字首先出现:aaa-10bbb < aaa-2bbb < aaa2bbb
我使用了以下排序规则
CREATE COLLATION custom_collation (provider = icu, locale = 'en-u-kn-true');
SELECT * FROM my_table ORDER BY a_field COLLATE custom_collation;
但是在这种情况下,负号没有被考虑在内。我能以某种方式扩展它吗?
任何帮助都很感激。谢谢!
1条答案
按热度按时间vdgimpew1#
让我们定义一个新的排序规则,其中包括否定符号(-)作为一个单独的字符,应该被视为小于任何数字位。还设置deterministic=true以确保跨平台的顺序一致,并设置co ='〈'以指示应该使用小于运算符进行比较。