Oracle中的无效标识符

use*_*682 -3 sql oracle identifier

我们有一个这样的表:

number branch code
1000 center XXCO
1001 xyz XXER
1002 zyx XXRE
2000 center2 YYCO
2001 xyz YYER
2002 zyx YYRE
Run Code Online (Sandbox Code Playgroud)

代码末尾带有“ CO”的所有项目都是代码中前两个符号相同的项目的父项。

任务是获取所有分支及其各自的父级的列表,如下所示:

center xyz XXER
center zyx XXRE
center2 xyz YYER
center2 zyx YYRE
Run Code Online (Sandbox Code Playgroud)

我尝试以下代码:

SELECT b.branch, a.branch, a.code
FROM tmp a JOIN tmp b ON
left(a.code,2) = left(b.code,2)
AND a.code NOT LIKE '%CO' AND b.code LIKE '%CO';
Run Code Online (Sandbox Code Playgroud)

但是我在脚本中指向“ = left”的位置出现错误。

ORA-00904: "LEFT": ???????????? ?????????????
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:
Error at Line: 3 Column: 17
Run Code Online (Sandbox Code Playgroud)

这可能是什么原因?有人可以帮忙吗?

Fra*_*itt 5

Oracle没有LEFT函数-而是使用SUBSTR(a.code,1,2)(假设您想比较前两个字符)。