我正在使用以下查询获取ORA-00979:
SELECT cr.review_sk, cr.cs_sk, cr.full_name,
tolist(to_char(cf.fact_date, 'mm/dd/yyyy')) "appt",
cs.cs_id, cr.tracking_number
from review cr, cs, fact cf
where cr.cs_sk = cs.cs_sk
and UPPER(cs.cs_id) like '%' || UPPER(i_cs_id) || '%'
and row_delete_date_time is null
and cr.review_sk = cf.review_wk (+)
and cr.fact_type_code (+) = 183050
GROUP BY cr.review_sk, cr.cs_sk, cf.fact_date, cr.tracking_number
ORDER BY cs.cs_id, cr.full_name;
我找不到在同一查询中同时具有GROUP BY和ORDER BY子句的任何示例。我尝试一次从组中删除每个字段,但仍然遇到相同的错误。
你必须把的所有列SELECT
的GROUP BY
或使用的压缩结果为单一值(如对他们的功能MIN
,MAX
或SUM
)。
一个简单的示例来了解为什么会发生这种情况:假设您有一个这样的数据库:
FOO BAR
0 A
0 B
然后你跑了SELECT * FROM table GROUP BY foo
。这意味着数据库必须返回第一行的结果作为第一行0
来满足,GROUP BY
但是现在有两个值bar
可供选择。您期望得到哪个结果-A
或B
?还是数据库应该返回多个行,从而违反的约定GROUP BY
?
问题内容: 有人可以帮我这个特定的查询吗?尝试运行此命令时,我遇到了ORA-00979: 问题答案: 问题是您的零件的子查询。仅仅因为其中包含了一个计数,实际上并不能使它成为一个汇总。它仍然是一个子查询,将应用于每行,并且您可以看到它使用的值不属于该组。
问题内容: 我有这个查询 引发ORA-00936缺少表达式的allow查询有什么问题?任何人?任何帮助将不胜感激…在第一个顺序的开头处,列:80处引发错误: 问题答案: 您的查询可以大大简化。它具有诸如子查询的额外层和在子查询中不必要的东西。您想做什么就可以:
问题内容: 我收到以下查询的ORA:00936错误。请让我知道查询中的问题 问题答案: SELECT convert(DATE,r.created_dt)作为created_dt 问题在于错误使用了 CONVERT 函数。请参阅文档。 我猜您正在尝试转换数据类型,可以使用 TO_DATE 将字符串转换为日期。或者, TO_CHAR 反之亦然。
我需要的算法,将检查是否给定的表达式是中缀,后缀或前缀表达式。我尝试了一种方法,通过检查字符串的第一个或最后两个项,例如。 AB如果字符串的第一个索引中有一个运算符,那么它就是一个前缀 AB如果字符串的最后一个索引中有一个运算符,那么它就是一个后缀 否则它就是一个中缀。 但是感觉不太合适,所以请建议我一个更好的算法。
问题内容: 效果很好,但是当我在select中包含标题时,例如: 没有。为什么?如何使其运作? 问题答案: 如果那是您的意思,Rhys的答案是正确的,但是您可能想在()中使用,而该措辞建议了如何获得该答案: 为了减少重复,可以使用子句(如果使用的是最新版本的SQL): 我用来确认语法的示例。
问题内容: 据我了解,反斜杠点()表示任何字符中的一个字符?因此,由于反斜杠是转义符,因此应为反斜杠反斜杠点() 这对字符串有什么作用?我只是在我正在研究的现有代码中看到了这一点。据我了解,它将字符串拆分成单个字符。为什么这样做,而不是。因此,这会将字符串拆分为一个字符串数组,该数组的每个字符串仅包含一个char? 问题答案: 我的猜测是,您缺少Java字符串文字中的反斜杠(’')字符是转义字符的