请问informix如何让查询结果按照指定顺序排序?
select*from表orderbysunxun这个查询查出的结果只能按sunxun这个字段要么升序排要么降序排而现在要求按照指定的顺序排比如sunxun这个字段的值可...
select * from 表 order by sunxun
这个查询 查出的结果 只能按sunxun这个字段 要么升序排要么降序排 而现在要求按照指定的顺序排 比如 sunxun 这个字段的值可能是 A或B或C或D 升序 降序只能排出ABCD 或DCBA 而我现在想要的是BCAD 请问这个排序怎么写?
请一定注意,我的数据库是informix,不是sqlserverse,如果oracle也有办法的话还请一并回答,谢谢。 展开
这个查询 查出的结果 只能按sunxun这个字段 要么升序排要么降序排 而现在要求按照指定的顺序排 比如 sunxun 这个字段的值可能是 A或B或C或D 升序 降序只能排出ABCD 或DCBA 而我现在想要的是BCAD 请问这个排序怎么写?
请一定注意,我的数据库是informix,不是sqlserverse,如果oracle也有办法的话还请一并回答,谢谢。 展开
1个回答
展开全部
先建一个临时表,例如:
create table sort_table
(
sort_seq integer,
sort_name char(50) --内容为你“表”的sunxun列
);
按你需要的顺序,插入数据,比如:(1,"B") (2,"C") (3,"A") (4,"D")
select 表.* from 表, sort_table
where 表.sunxun=sort_table.name
order by sort_table.sort_seq
create table sort_table
(
sort_seq integer,
sort_name char(50) --内容为你“表”的sunxun列
);
按你需要的顺序,插入数据,比如:(1,"B") (2,"C") (3,"A") (4,"D")
select 表.* from 表, sort_table
where 表.sunxun=sort_table.name
order by sort_table.sort_seq
追问
是个好办法,很通用,但是请问你还知道有没有简单点,不那么麻烦的办法呢?
追答
再简单的没有,这已经很简单了
其实只要把sunxun列uniq选出来,unload到文本,然后编辑一下,加上顺序号,load到临时表里就行了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询