CREATE TABLE test (id NUMBER, name VARCHAR2(10))INSERT INTO test(id,name) VALUES(1,'方')INSERT INTO test(id,name) VALUES(2,'陈')INSERT INTO test(id,name) VALUES(3,'王')INSERT INTO test(id,name) VALUES(4,'孙')INSERT INTO test(id,name) VALUES(5,'李')INSERT INTO test(id,name) VALUES(5,'爱')SELECT CASE name WHEN 'a陈' THEN '陈' ELSE name END AS name FROM ( SELECT CASE name WHEN '陈' THEN 'a'||name ELSE name END AS name FROM test ORDER BY name)
默认的就是拼音排序啊?select name from test order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');
create table myname(name varchar2(20)); INSERT INTO test(id,name) VALUES('方'); INSERT INTO test(id,name) VALUES('陈'); INSERT INTO test(id,name) VALUES('孙'); INSERT INTO test(id,name) VALUES('李'); select * from test order by 'name'; 这样就会按照字母排序
WHEN 'a陈' THEN
'陈'
ELSE
name
END AS name
FROM (
SELECT CASE name
WHEN '陈' THEN
'a'||name
ELSE
name
END AS name
FROM test ORDER BY name)
order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');
INSERT INTO test(id,name) VALUES('方');
INSERT INTO test(id,name) VALUES('陈');
INSERT INTO test(id,name) VALUES('孙');
INSERT INTO test(id,name) VALUES('李');
select * from test order by 'name';
这样就会按照字母排序