您的位置:首页 > 数据库

[Err] ORA-01791: not a SELECTed expression 数据库错误 的原因与解决

2017-05-17 16:44 483 查看
最近做一个数据的查询排序时遇到一个Oracle错误:

查询语句如下:

SELECT DISTINCT
s.usercode,
s.username,
s.groupcode
FROM
(
SELECT DISTINCT
*
FROM
(
(
sys_user U
INNER JOIN sys_user_group ug ON U .userid = ug.userid
)
INNER JOIN sys_group G ON G .groupid = ug.groupid
)
WHERE
groupname = '中心主任'
OR groupname = '分管领导'
) s
INNER JOIN sys_org_info o ON s.org_id = o.org_id
WHERE
corp_id = '40402864560263120156026d7ef2008b'
AND (org_name = '中心领导')
ORDER BY
s.groupcode ASC,
s.userorder


出现如下错误:
[Err] ORA-01791: not a SELECTed expression

因为select distinct 和order by一起使用的时候,order by中必须是常量或者select列表中出现的表达式。

所以:修改一下如下就解决了

SELECT DISTINCT
s.usercode,
s.username,
s.groupcode,
s.userorder

备注:在做人员按职位排序时,简单的order by 无法解决客户要求,所以,在加一个字段记录维护排序数据。就解决了问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: