1

重複の可能性:
注文後に Oracle クエリによって返される行数を制限するにはどうすればよいですか?

以下のクエリと同じように使用しています。

SELECT url, title, metadesc FROM (
        SELECT url,title, metadesc, rownum rn FROM (
                SELECT url, title, metadesc FROM web
            )
            WHERE rownum <= 60
    )
    WHERE rn > 50

単一のテーブルでは正常に機能しますが、メインクエリに参加する場合、つまり

SELECT name, id, url, title, metadesc
FROM web, emp

それは私にエラーを与えます:

java.sql.SQLException: ORA-00918: column ambiguously defined
4

1 に答える 1

1

次のいずれかのエイリアスを使用します。

SELECT e.name, e.id, w.url, w.title, w.metadesc
  FROM web w
  JOIN emp e ON w.xx = e.yy

または完全なテーブル名 (より詳細):

SELECT emp .name, emp .id, web.url, web.title, web.metadesc
  FROM web
  JOIN emp ON web.xx = emp .yy

サブクエリが同じ名前の 2 つの列を返す場合、次のことはできませんSELECT *

SQL> SELECT * FROM (
  2     SELECT d1.dummy, d2.dummy
  3       FROM dual d1, dual d2
  4  );

ERROR at line 1:
ORA-00918: column ambiguously defined

その場合、エイリアスを使用してサブクエリで異なる列名を使用します。

SQL> SELECT * FROM (
  2     SELECT d1.dummy dummy_d1, d2.dummy dummy_d2
  3       FROM dual d1, dual d2
  4  );

D D
- -
X X
于 2012-09-03T09:59:00.800 に答える