如何通过字母排序选择并忽略括号?
SELECT name FROM table1 ORDER BY name;
它返回:
(stu) abc suv
我想:
abc (stu) suv
答案 0 :(得分:1)
在订购前删除括号:
SELECT name
FROM table1
ORDER BY REPLACE(name, '(', '');
但是,这使得它不使用name
列上的任何索引,因此如果表很大,性能将不会很好。
如果括号在开头和结尾只能是一对,只需删除第一个字符(如果是括号),就可以稍微提高性能:
SELECT name
FROM table1
ORDER BY CASE WHEN LEFT(name, 1) = '(' THEN SUBSTR(name, 2) ELSE name END;
答案 1 :(得分:0)
尝试这样的事情:
SELECT name FROM table1 ORDER BY REPLACE(name, '(', '');
答案 2 :(得分:0)
尝试:
SELECT name FROM table1 ORDER BY REPLACE(REPLACE(name, '(', ''), ')', '');