問題タブ [connect-by]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
334 参照

sql - PL-SQL ツリーの最大値ロールアップ

この質問がすでにされている場合は申し訳ありません。私をリダイレクトしてください。

保留中だったらごめんなさい。
私の質問を明確にするために。

これが私の詳細です。

T1 という名前のビューが 1 つあり、ID(NUM)、PARENT_ID(NUM)、COLOR(NUM) という名前の 3 つの列があります。

*ID 列は列 PARENT_ID の子です
*COLOR 列は ID 列に割り当てられた色です (最高 4000、3000、2000、最低 1000)
*ID を持つ行は 1 で、PARENT ID 0 は最上位/ルート レベルです。
* ID が 0 の行はありません。

私の問題は、次の方法がわからないことです
。1.子の最高の色値に従って親の色を変更します。
例: ID 2 の行は 4000 色でなければなりません (4000[行 ID 4]>3000[行 ID 5])。
2.次に、親の最高色に合わせて祖父母の色も変更します。グランド グランド ペアレントが存在する場合は、グランド ペアレントの最高色に従って更新する必要があります。

出力する必要があります。

Oracle 11g を使用しています。

私の T1 ビューも、Connect By を使用して結合された複数のテーブルの結果であることに注意してください。Connect By を使用して最大の色を取得することはできましたが、直接の親の色のみを反映し、祖父母の色は反映しません。

ご意見をお聞かせください..

0 投票する
1 に答える
1577 参照

sql - 階層サブクエリを使用して階層パスを構築する方法

編集:サブクエリを使用しようとした理由を明確にするために、場所エンティティを導入して追加情報を提供しました

Oracle 11gデータベースには、最終的に数百万行を含む要素の階層構造テーブルがあります。各行には、その親を指すインデックス付きの外部キーがあり、循環は許可されていません。要素には名前と型もあります。それに加えて、要素に似た別のエンティティーlocationがあります(階層型で、親 + 名前を指す外部キーがあります)。最上位の要素(あなたのルート) は場所にあります(それらはLocationIdによって接続されています)。したがって、2 つのエンティティがあります。

位置:

  • ID [NUMBER(9,0), PK]
  • ParentId [NUMBER(9,0), FK]
  • 名前 [VARCHAR2(200)]

エレメント:

  • ID [NUMBER(9,0), PK]
  • LocationId [NUMBER(9,0), FK]
  • ParentId [NUMBER(9,0), FK]
  • TypeId [NUMBER(9,0), FK]
  • 名前 [VARCHAR2(200)]

たとえば、テーブルに次のデータが含まれているとします。

位置:

エレメント:

私がしなければならないのは、要素のクエリを作成することです。これは、基本的な 4 つの要素列に加えて、親 ID、名前、および型 ID のフル パス + 最上位の要素の 場所ID と名前のフル パスも返します。したがって、 ID 3 の要素を取得した場合(この条件は、ここで指定されていない複数の列によって複雑になる場合もあります)、クエリは次のように返す必要があります。

最初に、場所要素の目的のパスを返すオラクルの階層クエリを作成しました

位置

エレメント

これらのクエリを基本選択で結合されたサブクエリとして使用したいときに問題が発生しました-階層クエリは完全なテーブルスキャンを実行するため、開始条件を結合条件に置き換えることはできません:

クエリは1つだけでなく複数のパスを返す必要があるため、スカラーサブクエリも実行できません。助言がありますか?私は正しい方向に進んでいますか、それとも要素テーブルにいくつかのフィールドを追加し、必要なすべてのパスをキャッシュする必要がありますか? (頻繁に更新されるわけではありません)

ありがとう!

0 投票する
2 に答える
1583 参照

oracle - oracle - CLOB パラメータで connect by ステートメントを使用する

私の手順

長い文字列 p_LstKH を分割して、CURSOR c_dsKH に入れたいと思います。例: p_LstKH = '1,2,....,10000'

しかし、その手順を実行すると、「操作で接続するためのメモリが不足しています」というエラーが表示されます。パラメータ p_LstKH CLOB を p_LstKH VARCHAR2 に置き換えようとすると、他のエラー「ORA-06502: PL/SQL: 数値または値エラー: 文字列バッファが小さすぎます」が発生します。

私は今どうすればいい ?簡単に言えば、長い文字列を分割したいと思います。皆さんありがとう !

0 投票する
3 に答える
12480 参照

oracle - PostgreSQL には、Oracle の「LEVEL」のような疑似列がありますか?

PostgreSQL には、Oracle の「LEVEL」のような疑似列がありますか?
そうでない場合、「LEVEL」のような列を作成するにはどうすればよいでしょうか?

0 投票する
1 に答える
591 参照

sql - Oracle から Derby - Derby で ConnectBy と同等のものから開始

次の Query1 は Oracle で問題ありません。同じ機能を Derby で実行したいと考えています。ここで従うべき提案の 1 つとして、Query2 を取得しました。しかし、それでも Error1 がスローされます。これを取り除くために誰かが私を助けてください。私は何をすべきか?

クエリ 1:

クエリ 2:

エラー 1:

0 投票する
1 に答える
10563 参照

oracle - PostgreSQL - Oracle で「start with」と「connect by」を使用してクエリを移行する

私はオラクルで次のクエリを持っています。PostgreSQL形式に変換したい。誰かがこれで私を助けてくれますか、