Oracle:Ora-01791 不是Selected表达式

在做一个查询时,出现”Ora-01791 不是Selected表达式“,记录下来以作记念

 

select distinct button.BT_CODE,          
                button.MI_CODE,         
                button.BT_STRUCTURECODE, 
                button.BT_NAME,          
                button.BT_VALUE,        
                button.BT_LABELCODE,     
                button.BT_TYPE,          
                button.BT_CLASS,         
                button.BT_ONCLICK,       
                button.BT_STATUS        
  from T_AC_USERROLE     ur,
       T_AC_ROLEMENUITEM rm,
       T_AC_ROLE         role,
       T_AC_MENUITEM     menu,
       T_AC_BUTTON       button
 where role.RL_CODE = ur.RL_CODE 
   and role.RL_CODE = rm.RL_CODE 
   and menu.MI_CODE = rm.MI_CODE 
   and button.BT_CODE = rm.BT_CODE
   and button.MI_CODE = menu.MI_CODE
   and button.BT_CODE != '0'
   and ur.UT_CODE = 'OP'
   and ur.USR_CODE = 18
 order by menu.MI_STRUCTURECODE

 

上面的查询语句报Ora-01791 不是Selected错误

 

原因是在做distinct 时,order by 的字段不要查询结果中,就是说menu.MI_STRUCTURECODE必须出要在select后面。

 

解决办法,变为order by button.BT_CODE 变可以了。

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值