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