他の開発者が作成した次のクエリを使用しています。
SELECT DISTINCT c.id category_id,
c.parent_id,
d.name AS category_name,
level
FROM category c,
category_language d
WHERE c.id = d.category_id
AND c.is_active = 1
AND c.is_deleted = 0
AND c.deleted_date IS NULL
AND d.is_active = 1
AND d.is_deleted = 0
AND d.deleted_date IS NULL
AND ((to_date(d.expiry_date,'DD-MON-YYYY') > to_date(sysdate,'DD-MON-YYYY'))
OR d.expiry_date IS NULL)
AND d.language_id = 1
AND c.cat_type_id = 1
START WITH c.parent_id =1308206844
CONNECT BY c.parent_id = prior c.id
ORDER SIBLINGS BY d.name
私には2つの問題がありました。
まず、クエリでSTART WITH、CONNECT BY、PRIORキーワードがどのように機能しているかわかりません。
次に、ORDER SIBLINGS BY d.nameをORDER SIBLINGS BY c.priority descに変更すると、次のエラー メッセージがスローされます:=
ORA-01791: not a SELECTed expression
01791. 00000 - "not a SELECTed expression"
また、優先度のデータ型を数値から文字列に変更しようとしましたが、同じエラーがスローされます。
目的の結果を生成するために、 c.priority desc で順序のクエリを実行したいと考えています。