ORA-01791: 不是 SELECTed 表达式 --- disdinct用法总结

当在SQL查询中使用DISTINCT关键字时,可能会遇到ORA-01791错误,这通常发生在DISTINCT与ORDER BY一起使用时。错误的原因可能是ORDER BY中的字段未在SELECT列表中,或者字段名称冲突。解决办法是确保ORDER BY后的字段名称与SELECT中的别名或字段名称一致。本文总结了DISTINCT的正确用法:1) 放在查询字段开头;2) 多个字段去重时所有字段都要相同;3) 与ORDER BY结合时,ORDER BY字段需与SELECT中的别名匹配;4) ORDER BY的字段必须在SELECT中。
摘要由CSDN通过智能技术生成

sql查询报错:

not a Selected expression:不是一个查询表达式;

这个错误主要是使用distinct后出现的,通常出现在通常distinct和order by 一起使用的情况

sql如下:

SELECT tab.*
FROM (
         SELECT DISTINCT a.offer_id   AS offer_id,
                         a.offer_name,
                         a.offer_sys_name,
                         a.offer_type    offer_kind,
                         CASE (
                             SELECT lab.label_id
                             FROM OBJECT_LABEL_REL olr
                                      INNER JOIN label lab on olr.LABEL_ID = lab.LABEL_ID
                             WHERE a.offer_id = olr.obj_id
                               AND olr.label_id IN ('10000', '10001')
                         )
                             WHEN 10000 THEN
                                 &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值