日期:2014-05-17  浏览次数:20748 次

oralce排序问题
id   字段1
1       方
2       陈
3       王
4       孙
5       李

我想把“陈”排在前面,如何?

------解决方案--------------------
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 ');


------解决方案--------------------
拼音排序的
------解决方案--------------------
我来总结下:
1楼的方法可以把任意你想要的排在前面

如果只是你的测试数据的话,直接排序 陈 就是第1个,默认就是拼音排序的

------解决方案--------------------
order by `字段1`;

------解决方案--------------------
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 ';
这样就会按照字母排序