728x90
반응형

DBeaver에 푹 빠져살고 있는 요즘입니다.

DBeaver에서 세팅된 기본 SQL실행 단축키는 아래와 같이 Ctrl+Enter 입니다.

MSSQL 을 사용하시는 분들은 F5로 불편함이 많으실 텐데요, 참지 말고 아래의 방법으로 변경해봅시다.

윈도우 > 설정으로 들어가셔서

User Interface > 키 > SQL문 실행의 아래 바인딩 부분을 원하는 키로 변경하면 됩니다.

참고로 이전 프로젝트에서는 MSSQL을 사용하고 있고 DBeaver에서 SQL 실행키를 ​F5로 변경해서 사용하고 있답니다.

불편한건 고쳐서 사용하자!

 

728x90
반응형
728x90
반응형

 

Microsoft SQL Server에서 계층적 데이터를 쿼리하기 위해 "Connect by"와 유사한 방법은 CTE(Common Table Expression)와 재귀 쿼리(Recursive Query)를 사용하는 것입니다. CTE 및 재귀 쿼리를 사용하면 계층적 데이터를 다루는데 효과적입니다. 아래에 간단한 예제를 제시하겠습니다.

먼저, 다음과 같은 예제 데이터를 사용하겠습니다.

CREATE TABLE Employees

(

EmployeeID INT PRIMARY KEY,

EmployeeName NVARCHAR(50),

ManagerID INT

);

INSERT INTO Employees (EmployeeID, EmployeeName, ManagerID)

VALUES (1, 'John', NULL),

(2, 'Alice', 1),

(3, 'Bob', 1),

(4, 'Charlie', 2),

(5, 'David', 2),

(6, 'Eve', 3);

이제 CTE와 재귀 쿼리를 사용하여 계층적 데이터를 쿼리하는 방법을 보여드리겠습니다.

-- 재귀 CTE를 사용하여 계층적 데이터를 쿼리합니다.

WITH EmployeeHierarchy AS

(

SELECT EmployeeID, EmployeeName, ManagerID, 0 AS Level

FROM Employees

WHERE ManagerID IS NULL

UNION ALL

SELECT e.EmployeeID, e.EmployeeName, e.ManagerID, eh.Level + 1

FROM Employees e

INNER JOIN EmployeeHierarchy eh ON e.ManagerID = eh.EmployeeID

)

SELECT EmployeeID, EmployeeName, ManagerID, Level

FROM EmployeeHierarchy

ORDER BY Level, EmployeeID;

위의 쿼리는 계층적 데이터를 계층 수준(Level)에 따라 정렬하여 출력합니다. 재귀 CTE를 사용하면 계층 구조를 탐색하면서 데이터를 가져올 수 있습니다.

이 코드에서:

첫 번째 부분은 루트 노드(ManagerID가 NULL)의 데이터를 선택합니다.

두 번째 부분은 재귀적으로 EmployeeHierarchy CTE와 Employees 테이블을 조인하여 계층 구조를 탐색합니다.

최종 결과는 계층 수준(Level)에 따라 정렬된 계층적 데이터를 반환합니다.

이것이 SQL Server에서 "Connect by"와 유사한 방법으로 계층적 데이터를 쿼리하는 방법입니다. 계층 구조가 있는 데이터를 다룰 때 매우 유용한 기술입니다.

728x90
반응형

'DB' 카테고리의 다른 글

유용한 DBEAVER 단축키 모음  (1) 2024.04.29
[DBeaver] SQL실행 단축기 변경  (2) 2023.12.31

+ Recent posts