SQL Serverで階層問合せ

レコードに自身のコードと親コードを持ち、親子関係よりツリー構造を抽出するものをOracleでは階層問合せといい、START WITH句、CONNECT BY句を使用して抽出できますが、SQL ServerにはSTART WITH句、CONNECT BY句が使用できません。
そこでSQL Serverで階層問合せをするSQLを紹介します。

コーディング例

実行結果

所属コードリスト 所属名リスト
100 A会社
100 > 200 A会社 > B部
100 > 200 > 300 A会社 > B部 > C課
100 > 400 A会社 > D部
100 > 400 > 500 A会社 > D部 > E課

WITH句内でUNION ALLを使用すると自身の結果を参照することが可能になります。
以上、「SQL Serverで階層問合せ」でした。