我在弄一个编程论坛,我的数据库表module版块表是这样的:
MODULEID NUMBER 版块ID 主键
MODULENAME VARCHAR2(64) 版块名称 非空
TYPE VARCHAR2(64) 版块类别 非空
DESCRIPTION VARCHAR2(256) 版块描述 版块类别有三种:数据库,开发语言,非技术区。
现在我想用sql语句把版块信息,按照先数据库类,再开发语言类,最后非技术区类这个顺序将版块信息全部显示出来。可是这个sql语句有点无从下手,求大家帮帮忙啊,谢谢!!!
MODULEID NUMBER 版块ID 主键
MODULENAME VARCHAR2(64) 版块名称 非空
TYPE VARCHAR2(64) 版块类别 非空
DESCRIPTION VARCHAR2(256) 版块描述 版块类别有三种:数据库,开发语言,非技术区。
现在我想用sql语句把版块信息,按照先数据库类,再开发语言类,最后非技术区类这个顺序将版块信息全部显示出来。可是这个sql语句有点无从下手,求大家帮帮忙啊,谢谢!!!
比如10是数据库类,20是开发语言类,30是非技术区
那SQL出来,直接最后加ORDER BY TYPE 就可以了如果里面是写的中文,那就用ORDER BY TYPE DESC
select * from module
order by type desc;
这个出来的顺序好象不符合要求。不好意思我上面的顺序说错了:
应该是开发语言->数据库->非技术区请问用sql如何实现这个特定的顺序排列呢?
select *
from
( select decode(TYPE,'开发语言',1,'数据库',2,3) rn,MODULENAME,type,DESCRIPTION from module
) a
order by a.rn