-3

次のようなテーブルがあります。

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

コードの末尾に「CO」があるすべての項目は、コード内の最初の 2 つの記号が同じ項目の親です。

タスクは、次のように、それぞれの親を持つすべてのブランチのリストを取得することです。

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

しかし、スクリプトの「= 左」の位置を指しているエラーが発生します。

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) を使用してください (最初の 2 文字を比較したい場合)。

于 2012-09-21T11:45:22.937 に答える
2

Oracle には LEFT 関数はありません。LEFT(code,2) の代わりに SUBSTR(code,1,2) を使用する

于 2012-09-21T11:45:48.003 に答える