我们有一个这样的表:
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
这可能是什么原因?有人可以帮忙吗?
答案 0 :(得分:4)
Oracle没有LEFT功能 - 请改用SUBSTR(a.code,1,2)(假设您要比较前两个字符)。
答案 1 :(得分:1)
Oracle中没有LEFT功能。使用SUBSTR(代码,1,2)代替LEFT(代码,2)