为了日后方便维护,还是先建一个表,用于定义各学院的顺序
如:排序表(studep C(60),序号 INT)
studep
序号
轻工学部
1
机械学院
2
电气学院
3
计算机学院 4
按 studep 索引一下
INDEX ON studep TAG studep
然后就可以这样排序了,若要修改顺序(或增加学院),只要维护"排序表 "就可以了.
SELECT a.*,NVL(b.序号,999) 排序 FROM bm a LEFT JOIN 排序表 b ON a.studep=b.studep ORDER BY 排序
----------------------------------------------------------
你还可以自定义一个过程,用于返回“序号”
FUNCTION 获取序号(学院名 as string) AS Integer
IF NOT USED('排序表')
USE 排序表 IN 0
ENDIF
SET ORDER TO studep IN 排序表
RETURN IIF(SEEK(m.学院名,'排序表'),排序表.序号,9999)
ENDFUNC
然后就可以这样排序了
SELECT *,获取序号(studep) 排序 FROM bm ORDER BY 排序
[
本帖最后由 bccn0906 于 2014-1-8 09:59 编辑 ]