首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

想去改变这个排序,哪位高手有办法,大家一起学习学习

2012-03-28 
想去改变这个排序,谁有办法,大家一起学习学习。先创建表,如下:SQL codeCREATE TABLE old_temp_order (useri

想去改变这个排序,谁有办法,大家一起学习学习。
先创建表,如下:

SQL code
  CREATE TABLE old_temp_order (userid VARCHAR2(20) PRIMARY KEY,username VARCHAR2(20));

插入值:
SQL code
        INSERT INTO OLD_TEMP_ORDER (USERID, USERNAME) VALUES ('10120110514051', '第一');        INSERT INTO OLD_TEMP_ORDER (USERID, USERNAME) VALUES ('10120110514052', '第二');        INSERT INTO OLD_TEMP_ORDER (USERID, USERNAME) VALUES ('10120110514053', '第三');


我想得到如下顺序出来的内容
SQL code
10120110514053    第三10120110514052    第二10120110514051    第一        


我用union all可以得到结果,如下:
SQL code
         SELECT USERID, USERNAME FROM OLD_TEMP_ORDER WHERE USERID = '10120110514053'         UNION ALL         SELECT USERID, USERNAME FROM OLD_TEMP_ORDER WHERE USERID = '10120110514052'         UNION ALL         SELECT USERID, USERNAME FROM OLD_TEMP_ORDER WHERE USERID = '10120110514051'


但是我用sql
SQL code
SELECT * FROM OLD_TEMP_ORDER WHERE USERID IN ('10120110514053', '10120110514052', '10120110514051');

总是得不到想要的结果,而且无论In中的顺序如何变化,结果都是一样的,都不能改变我需要的,请讨论下如果这样查询IN的语法机制在哪里,为什么就出现不了我想得到的结果的,麻烦高手请教下,十分感谢!!!



[解决办法]
用IN的时候,查询出来的结果,默认排序是按照表里的primary key排序的;
如果建表的,没设定PrimaryKey,那么默认排序则是按照往表里插入记录的顺充读取的。

热点排行