일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 한글입력체크
- 정규식
- JavaScript
- ERD
- XML
- jdbc driver
- inner join
- FileSystemObject
- WML
- sql업데이트
- javascript 한글입력체크
- join
- 이미지세로길이
- SPLIT
- update
- injection
- VARIABLE
- asp함수
- 인젝션
- sql랭킹
- tempDB
- VarType
- sql순위
- 이미지가로길이
- instr
- xmldom
- MSSQL보안
- array
- 자바기초
- wap
- Today
- Total
3초기억력
mssql 재귀쿼리 기본, 트리구조 본문
제목 : mssql 재귀쿼리 기본, 트리구조
소스 :
use TEST
Create Table OrganizationalStructures (
BusinessUnitID smallint identity(1,1),
BusinessUnit varchar(100) Not Null,
ParentUnitID smallint
)
insert into OrganizationalStructures values
('Adventure Works Cycle',NULL),
('Customer Care',1),
('Service',1),
('Channel Sales & Marketing',1),
('Customer Support',2),
('OEM Support',2),
('Central Region',3),
('Eastern Region',3),
('Western Region',3),
('OEM',4),
('Channel Marketing',4),
('National Accounts',4),
('Channel Field Sales',4),
('National Channel Marketing',11),
('Retail Channel Marketing',11),
('Central Region',13),
('Eastern Region',13),
('Western Region',13),
('Bicycles',15),
('Bicycle Parts',15)
select * From OrganizationalStructures
WITH Recursive_CTE AS (
SELECT
child.BusinessUnitID,
CAST(child.BusinessUnit as varchar(100)) BusinessUnit,
CAST(child.ParentUnitID as SmallInt) ParentUnitID,
CAST(NULL as varchar(100)) ParentUnit,
CAST('>> ' as varchar(100)) LVL,
CAST(child.BusinessUnitID as varchar(100)) Hierarchy,
1 AS RecursionLevel
FROM OrganizationalStructures child
WHERE BusinessUnitID = 1
UNION ALL
SELECT
child.BusinessUnitID,
CAST(LVL + child.BusinessUnit as varchar(100)) AS BusinessUnit,
child.ParentUnitID,
parent.BusinessUnit ParentUnit,
CAST('>> ' + LVL as varchar(100)) AS LVL,
CAST(Hierarchy + ':' + CAST(child.BusinessUnitID as varchar(100)) as varchar(100)) Hierarchy,
RecursionLevel + 1 AS RecursionLevel
FROM Recursive_CTE parent
INNER JOIN OrganizationalStructures child ON child.ParentUnitID = parent.BusinessUnitID
)
SELECT * FROM Recursive_CTE ORDER BY Hierarchy
내용 :
예제 소스 파일 :
출처 :
'쿼리_MSSQL' 카테고리의 다른 글
mssql 이번주 시작일, 종료일 (0) | 2017.01.04 |
---|---|
mssql 초성검색 function 만들기 (0) | 2016.12.28 |
mssql 재귀쿼리(HIERARCHY), 임시테이블, 프로시저 사용하여 쿼리추출 (0) | 2016.11.29 |
mssql 엑셀에서 데이타 가져오기에서 숫자형, 문자형 필드의 NULL 오류 제대로 값 넣기 (0) | 2016.06.21 |
mssql sp_executesql output 매개변수 사용 (0) | 2016.03.15 |