ServiceID, ParentID 및 Description이 포함 된 "Services"테이블이 있습니다. 여기서 ParentID는 다른 레코드의 ServiceID입니다. 데이터는 여러 수준의 항목 계층 구조를 형성하고 "루트"항목의 ParentID가 0으로 설정되는 방식으로 설정됩니다. 각 레코드의 루트 부모까지 모든 부모의 스레드를 표시하는 새 필드를 사용하여 쿼리를 만들 수 있습니까? 물론 루트 항목에는이 필드가 공백으로 표시됩니다.MS SQL의 한 필드에 단항 관계 계층 표시
자동차> 독일> BMW> 4 륜구동> X3
자동차> 이탈리아 : 예를 들어 자동차를 사용하여, 나는 항목 'X3'는 각각 '푼토'에 대한이 필드 내 텍스트를 가지고 싶습니다 > FIAT> 프론트 휠 드라이브> Punto
나는 ServiceID를 피드하는 함수가 있어야하고 스레드 된 설명이 포함 된 문자열 값을 얻기 위해 필요한 재귀를 수행해야한다고 생각합니다. 단항 관계 검색을 시도했지만 필요한 기능에 대한 코드 예제를 찾을 수 없습니다.
미리 감사드립니다.
업데이트 : (20처럼) 왼쪽이 어떤 합리적인 제한에 조인 사용하고 문자열 concatatinate 것
CREATE TABLE [dbo].[Services](
[ServiceID] [int] IDENTITY(1,1) NOT NULL,
[ParentID] [int] NULL,
[ServiceDescription] [nvarchar](250) NULL)
이에 대한 내 대답 http://stackoverflow.com/questions/14241936/how-can-i-generate-a-hierarchy-path-in-sql-that-leads-to-a을 확인 할 수 있습니다 -given-node/14243624 # 14243624 – EricZ
필자는 예제를 사용하여 경로 목록을 가져 왔지만 필자가 필요로하는 것처럼 경로 테이블을 테이블과 통합하는 방법을 찾지 못했습니다. (테이블 구조를 사용하여) 방금 추가 한 업데이트를 참조하여 예제를 사용하여 다음과 같은 테이블을 얻는 방법은 무엇입니까? : ServiceID, ParentID, ServiceDescription, Path – Osprey
@EricZ 예제는 단일 레코드 용입니다. 아래에 제시 한 대답은 동일한 재귀 논리이지만 표의 모든 레코드에 대한 경로를 작성하는 데 사용됩니다. –