実際のJOINキーワードを使用せずにテーブルを結合するいくつかのOracle PL/SQLコードを次に示します。これはクロス結合のように見えますか? Netezza SQLコードに変換するには?それは私が立ち往生している場所です。JOINキーワードの代わりにコンマ区切りテーブルリストを使用すると、Oracle(Cross Join?)をNetezzaに変換する
SELECT COUNT(*)
FROM TABLE_A A, TABLE_A B
WHERE A.X = 'Y' AND A.PATH LIKE '/A/A/A'
AND B.X = 'Z' AND B.PATH LIKE '/B/B/B';
Oracleのクロスが参加:
http://www.sqlguides.com/sql_cross_join.php
をここに私はこれまで試したものです:
SELECT *
from TABLE_A A
cross join (
select * from TABLE_A
) B
WHERE
A.X = 'Y' AND A.PATH LIKE '/A/A/A'
AND B.X = 'Z' AND B.PATH LIKE '/B/B/B';
はEDIT:
a_horse_with_no_name:
最初にCOUNT(*)のいずれかの構文をNetezzaで使用すると、Oracleで実行されているときに上記の最初のクエリと一致する60の数が返されます。 NetezzaのWHERE句がないと、125316の結果が返されます。これは、Oracleで動作しているときの最初のクエリに一致します。私は非常に最初にSELECT *のためのNetezzaの構文のいずれかを使用すると、私はエラーを取得する
ERROR [HY000] ERROR: Record size 70418 exceeds internal limit of 65535 bytes'
INNERと同じですか? Xは列名です。 – MacGyver
(あなたの編集 '= Y'から '=' Y 'はクエリの意味を変えました)Oracle SQLはどのSQLデータベースでも同じように機能するはずです。しかし、あなたが 'クロスジョイント 'で置き換えたいのであれば' table_a a cross join table_b b where ...'となるでしょう。 –
編集を参照... ... – MacGyver