我有一個查詢使用GROUP BY
,所以我需要把選中的項目在GROUP BY
或在一個聚合函數。當我把它們放在GROUP BY
中時,t2.category
會在標題中引發錯誤。我試圖在CASE/WHEN
聲明中加入集合函數,而不是將t2.category
放入GROUP BY
,但我得到invalid identifier
錯誤。 t2.category
的一個示例可能是「服務器可靠性 - 由於數據庫丟失導致的連接問題」。我怎樣才能擺脫這個錯誤?ORA-00923:預計 - 得到CLOB
SELECT
msr._id,
CASE ans.question_id WHEN '767' THEN ans.category END "767",
CASE ans.question_id WHEN '768' THEN ans.category END "768"
FROM table1 t1
LEFT OUTER JOIN table2 t2
ON t1._id = t2._id
WHERE t2.question_id in (767,768) AND t2.assigned_to not in ('Smith, John')
AND t1.request_type_id in (288,289) and t1.status_id not in (0, 11);
GROUP BY t1._id, t2.question_id, t2.category
我假設't2.category'是基於錯誤的'clob'。是對的嗎? –
是的。這是導致錯誤的部分。 – NoSocks
[您無法通過CLOB進行分組](http://docs.oracle.com/cd/E11882_01/appdev.112/e18294/adlob_sql_semantics.htm#ADLOB45594)。你最多可以分組4000個字符,但如果那樣的話,你首先不需要CLOB。爲什麼當你在選擇列表中沒有聚合時,你有一個group by子句?這只是查詢的一部分嗎?如果你真的有聚合,顯示一個有代表性的查詢和表結構,也許有一種方法 - 比如聚合發生後加入到't2'。取決於你的數據。 –