我在BusinessObjects中进行Oracle查询,但我不能同时使用这三个关键字:DISTINCT,SUBSTR和ORDER BY。
可以使用DISTINCT 和 ORDER BY 或 DISTINCT 和 SUBSTR,但不能同时使用这三者。
返回的错误是" ORA-01791:不是SELECTed表达式"。
这有效:
SELECT
DISTINCT SUBSTR(HPD_HELP_DESK.Product_Name, 1, 3)
FROM
HPD_HELP_DESK
WHERE REGEXP_LIKE(HPD_HELP_DESK.Product_Name, '^[A-Z]{2}[A-Z]? -')
这也有效:
{{1}}
你能告诉我写些什么来让它起作用吗? 感谢。
答案 0 :(得分:2)
为SUBSTR
添加别名,并在ORDER BY
中使用:
SELECT DISTINCT SUBSTR(HPD_HELP_DESK.Product_Name, 1, 3) AS result
FROM HPD_HELP_DESK
WHERE REGEXP_LIKE(HPD_HELP_DESK.Product_Name, '^[A-Z]{2}[A-Z]? -')
ORDER BY result;
或:
SELECT DISTINCT SUBSTR(HPD_HELP_DESK.Product_Name, 1, 3)
FROM HPD_HELP_DESK
WHERE REGEXP_LIKE(HPD_HELP_DESK.Product_Name, '^[A-Z]{2}[A-Z]? -')
ORDER BY SUBSTR(HPD_HELP_DESK.Product_Name, 1, 3);
答案 1 :(得分:0)
您可以使用列号:
SELECT DISTINCT SUBSTR(HPD_HELP_DESK.Product_Name, 1, 3)
FROM HPD_HELP_DESK
WHERE REGEXP_LIKE(HPD_HELP_DESK.Product_Name, '^[A-Z]{2}[A-Z]? -')
ORDER BY 1