oracle用子查询降序,oracle中在in子查询语句中order by排序能否用?

如题,现在oracle数据库中有一个表org_master(org_id,org_name,org_parent_id,org_order)

表内数据是

序号,名称,上级ID,排序ID

1, 市局, 0, 1

2, 县5, 1, 5

3, 县1, 1, 1

4, 县3, 1, 3

5, 县2, 1, 2

6, 县4, 1, 4

7, 企业1, 2, 1

8, 企业2, 2, 2

9, 企业3, 3, 3

10,企业4, 3, 4

11,企业5, 4, 5

12,企业6, 4, 6

13,企业7, 5, 7

14,企业8, 5, 8

15,企业9, 6, 9

16,企业10, 6, 10

.

.

.

现在要查询出前三十条所有县的中的企业,而且要按照县的org_order排序

我写的语句是

SELECT ORG_ID,ORG_NAME,ORG_PARENT_ID FROM ORG_MASTER

WHERE ORG_PARENT_ID in (SELECT ORG_ID FROM ORG_MASTER WHERE ORG_PARENT_ID=1 ORDER BY ORG_ORDER)

AND ROWNUM <=30

运行语句数据库会报缺少右括号的异常,去掉ORDER BY ORG_ORDER运行就没有错误,我用的是版本是9i,网上说子句中可以用ORDER BY,谁能给看下怎么回事啊,或有什么方法查出来?

这里必须要用order by 排序,因为用户要求的,县的上下顺序可以修改,这里不用讨论这个问题

我用

SELECT ORG_ID,ORG_NAME,ORG_PARENT_ID,TYPE_ID FROM ORG_MASTER WHERE ORG_PARENT_ID in (SELECT ORG_ID FROM(SELECT ORG_ID FROM ORG_MASTER WHERE ORG_PARENT_ID=1 order by org_order))AND ROWNUM <=30

查出来了,但是出来的结果不对,单独运行SELECT ORG_ID FROM(SELECT ORG_ID FROM ORG_MASTER WHERE ORG_PARENT_ID=1 order by org_order)的排序结果,和最外面SELECT运行的排序结果不一致,怎么能让外面的SELECT查处来按照里面的排序显示?

重复经过,你这样是把表整个表内所有的市,县,企业全查处来了,我只要企业的信息~

"加一个 WHERE ORG_PARENT_ID=1"查询出来的全是县的信息..

xieyaoyu,你这样只能查出区县的信息,我要的是企业的...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值