시작하기무료로 시작하기

제 상사는 누구인가요?

이 연습에서는 계층 구조의 최상위 보스부터 최하위 직원까지의 경로를 구하려고 합니다. 이를 위해 각 단계에서 얻은 정보를 하나의 필드로 합쳐야 해요. 숫자형 ID들을 문자열로 변환해 CAST()로 이어 붙이면 됩니다. 예를 들어 숫자형 ID를 문자형으로 바꾸려면 CAST(ID AS VARCHAR(MAX))를 사용할 수 있어요.

이제 Chris Feierabend(ID=18)와 Jasmin Mentil(ID=16) 직원의 경로를 조직의 최상위까지 찾으세요. 출력 형식은 boss_first_level -> boss_second_level ...처럼 되어야 합니다. 이름이 아니라 직원의 ID만 선택해야 합니다.

이 연습은 강의의 일부입니다

SQL Server에서의 계층형 및 재귀 쿼리

강의 보기

연습 안내

  • 재귀의 시작 조건과 함께 상급자(0)의 IDPath를 초기화하세요.
  • 앵커 멤버를 UNION하고 재귀 멤버의 필드(ID, Name, Supervisor)를 정의하세요.
  • 각 단계에서 상급자 Supervisor의 ID를 Path에 추가하세요.
  • CTE에서 Chris FeierabendJasmin Mentil 직원의 ID를 선택하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

WITH employee_Hierarchy AS (
	SELECT
		ID, 
  		NAME,
  		Supervisor,
  		-- Initialize the Path with CAST
  		___('___' AS VARCHAR(MAX)) as Path
	FROM employee
	WHERE Supervisor = 0
	-- UNION the anchor query 
  	___ ALL
    -- Select the recursive query fields
	SELECT 
  		emp.___,
  		emp.___,
  		emp.___,
  		-- Add the supervisor in each step. CAST the supervisor.
        Path + '->' + ___(emp.___ AS VARCHAR(MAX))
	FROM employee emp
		INNER JOIN employee_Hierarchy
  		ON emp.Supervisor = employee_Hierarchy.ID
)

SELECT Path
FROM employee_Hierarchy
-- Select the employees Chris Feierabend and Jasmin Mentil
WHERE ___ = 16 OR ID = ___;
코드 편집 및 실행