[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 无法解决客户要求,所以,在加一个字段记录维护排序数据。就解决了问题
查询语句如下:
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 无法解决客户要求,所以,在加一个字段记录维护排序数据。就解决了问题
相关文章推荐
- ORA-01791: not a SELECTed expression 一个不是 bug 的 bug!
- ORA-01791:not a SELECTed expression 处理
- ORACLE查询中出现“Ora-01791 不是Selected表达式”错误信息的解决办法
- ORA-01791:not a SELECTed expression
- 错误解决--oracle中出现ORA-01791: 不是 SELECTed 表达式 错误
- ORA-01791:not a SELECTed expression
- ORA-01791: not a SELECTed expression
- plsql访问本机(win7 64位操作系统)数据库,报ORA-12514: TNS:listener does not currently.错误解决
- ORA-01791: not a SELECTed expression 一种是不 bug 的 bug!
- ORA-01791:not a SELECTed expression
- ORA-01791:not a SELECTed expression 处理
- 错误解决--oracle中出现ORA-01791: 不是 SELECTed 表达式 错误
- 将Ofbiz的数据库改为Oracle,运行时出现 ORA-01843: 无效的月份 错误 的原因及解决方法
- plsql访问本机(win7 64位操作系统)数据库,报ORA-12514: TNS:listener does not currently.错误解决
- ORA-01791: not a SELECTed expression after upgrade to 11.2.0.4 (文档 ID 1600974.1)
- 错误"ORA-04091: table is mutating, trigger/function may not see it"的原因以及解决办法
- myeclipse中建立oracle数据库连接时出现ora-12705错误的解决办法
- ORA-01034 错误的解决办法,错误信息shared memory realm does not exist
- Oracle ORA-12154: TNS:could not resolve service name错误的解决方法
- Ora-01791 不是Selected表达式”错误