SYS_CONNECT_BY_PATH スカラー関数

SYS_CONNECT_BY_PATH 関数は、階層照会におけるルートからノードまでのパスを表すストリングを作成します。この機能は、Db2® Warehouse on Cloud 管理対象サービスのエントリー・プランには適用されません。

構文図を読む構文図をスキップするSYS_CONNECT_BY_PATH(string-expression1 ,string-expression2)
スキーマは SYSIBM です。
string-expression1
行を特定する文字ストリング式。 この式には、以下のリストにあるいずれの項目も含めないでください。含まれる場合には、括弧内の SQLSTATE が戻ります。
  • ある順序の NEXT VALUE 式 (SQLSTATE 428F9)
  • LEVEL 疑似列または CONNECT_BY_ROOT 演算子などの階層照会構成体 (SQLSTATE 428H4)
  • OLAP 関数 (SQLSTATE 428H4)
  • 集約関数 (SQLSTATE 428H4)
string-expression2
区切り文字として機能する定数ストリング。 この式には、以下のリストにあるいずれの項目も含めないでください。含まれる場合には、括弧内の SQLSTATE が戻ります。
  • ある順序の NEXT VALUE 式 (SQLSTATE 428F9)
  • LEVEL 疑似列または CONNECT_BY_ROOT 演算子などの階層照会構成体 (SQLSTATE 428H4)
  • OLAP 関数 (SQLSTATE 428H4)
  • 集約関数 (SQLSTATE 428H4)

結果は可変長文字ストリングになります。 結果のデータ・タイプの長さ属性は、1000 と、string-expression1長さ属性のどちらか長いほうになります。

結果のデータ・タイプのストリング単位は、string-expression1 のデータ・タイプのストリング単位と同じになります。

疑似列 LEVEL n にある特定の行のストリングは、以下のように作成されます。
  • ステップ 1 (最初の中間結果表 H1 のルート行の値を使用):
    path1 := string-expression2 || string-expression1
  • ステップ n (中間結果表 Hn の行に基づく):
    pathn := pathn-1 || string-expression2 || string-expression1
SYS_CONTEXT_BY_PATH 関数には、次の規則が適用されます。
  • この関数を階層照会のコンテキスト外で指定すると、SQLSTATE 428H4 が戻ります。
  • この関数を START WITH 節または CONNECT BY 節で使用すると、SQLSTATE 428H4 が戻ります。
以下の例では、DEPARTMENT 表の部門階層が戻ります。
   SELECT CAST(SYS_CONNECT_BY_PATH(DEPTNAME, '/')
       AS VARCHAR(76)) AS ORG
     FROM DEPARTMENT START WITH DEPTNO = 'A00'
     CONNECT BY NOCYCLE PRIOR DEPTNO = ADMRDEPT
この照会は、以下の結果を戻します。
ORG
-----------------------------------------------------------------------
/SPIFFY COMPUTER SERVICE DIV.
/SPIFFY COMPUTER SERVICE DIV./PLANNING
/SPIFFY COMPUTER SERVICE DIV./INFORMATION CENTER
/SPIFFY COMPUTER SERVICE DIV./DEVELOPMENT CENTER
/SPIFFY COMPUTER SERVICE DIV./DEVELOPMENT CENTER/MANUFACTURING SYSTEMS
/SPIFFY COMPUTER SERVICE DIV./DEVELOPMENT CENTER/ADMINISTRATION SYSTEMS
/SPIFFY COMPUTER SERVICE DIV./SUPPORT SERVICES
/SPIFFY COMPUTER SERVICE DIV./SUPPORT SERVICES/OPERATIONS
/SPIFFY COMPUTER SERVICE DIV./SUPPORT SERVICES/SOFTWARE SUPPORT
/SPIFFY COMPUTER SERVICE DIV./SUPPORT SERVICES/BRANCH OFFICE F2
/SPIFFY COMPUTER SERVICE DIV./SUPPORT SERVICES/BRANCH OFFICE G2
/SPIFFY COMPUTER SERVICE DIV./SUPPORT SERVICES/BRANCH OFFICE H2
/SPIFFY COMPUTER SERVICE DIV./SUPPORT SERVICES/BRANCH OFFICE I2
/SPIFFY COMPUTER SERVICE DIV./SUPPORT SERVICES/BRANCH OFFICE J2