SQL (부모 노드에 따라 아이를 찾을 수) 재귀 적으로 구현된다

데이터베이스 이전 1, 2005, 달성하기 위해 함수를 사용합니다. (자식 노드에 따라 부모 노드 찾기)

( 'f_getParentBySon')가 널 드롭 기능 f_getParentBySon되지 않으면 object_id에
이동
은 CREATE 함수 f_getParentBySon을 (@id VARCHAR (100))
를 표 (ID VARCHAR (100)) @t 수익
AS
선두
@t INTO INSERT 선택 @id
SELECT @의 ID를 = Parid BOM_Detail에서 어디 ID = @id 및 Parid는 null이 아니고 - 모든 알 제 성능, 데이터 입력 식 ID 및 변수에 할당 한 다음 부모 식별자 (목적은 둘 이상의 상위 관련된 동일한 서브 이드 때 모든 부모 제품을 찾기) 상품 구성
그동안을 @@ ROWCOUNT> 0
(가) 시작
(가) 위의 WHERE가 @id 및 Parid하지 null 인 ID = BOM_Detail 언급에서 SELECT는 SELECT @id = Parid @id @t INSERT INTO를 - 상품을 확인하는 아버지되었습니다 어떤 때까지 새로운 데이터 할당 변수, 루프 밖으로 다시 한 번 가변 데이터 쿼리에 새로운 제품의 아버지, 데이터 쿼리
최종
수익률은
최종
이동

使用 다음을 선택 BOM_Detail * A, f_getParentBySon ( '000020000600005')에서 어디 a.id = b.id 나. 

원조 문으로 (목적에 따라 자식 노드의 부모 노드를 찾기 위해 여전히)와 데이터베이스 후 2, 2005,

 ; AS subqry WITH
  (
    TB FROM tb.id, tb.qty, tb.parid을 선택 WHERE ID = @ 아이디  
    UNION ALL
    SELECT tb.id, tb.qty 결핵 FROM tb.parid, subqry
    WHERE tb.id = subqry.Parid
   )

subqry에서 *를 선택 - 쿼리 데이터를

하나님의 위대한 기사의 도움으로 데모와 예제를 들어 https://www.cnblogs.com/hshuai/p/3947424.html

 

추천

출처www.cnblogs.com/zhh-blogs/p/11648804.html