-3

我们有一个这样的表:

number branch code
1000 center XXCO
1001 xyz XXER
1002 zyx XXRE
2000 center2 YYCO
2001 xyz YYER
2002 zyx YYRE

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

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

center xyz XXER
center zyx XXRE
center2 xyz YYER
center2 zyx YYRE

我尝试以下代码:

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';

但是我得到一个指向脚本中“= left”位置的错误。

ORA-00904: "LEFT": недопустимый идентификатор
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:
Error at Line: 3 Column: 17

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

4

2 回答 2

6

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

于 2012-09-21T11:45:22.937 回答
2

Oracle 中没有 LEFT 函数。使用 SUBSTR(code,1,2) 而不是 LEFT(code,2)

于 2012-09-21T11:45:48.003 回答