SQL 서버 LEAD() 함수

Sql Seobeo Lead Hamsu



이 문서에서는 SQL Server에서 lead() 함수 작업의 기본 사항을 안내합니다. 함수가 수행하는 작업, 구문 및 사용 방법에 대한 실제 예를 다룰 것입니다.

SQL Server 리드 기능

SQL Server의 리드 함수는 자체 조인 없이 동일한 결과 집합의 후속 행에서 데이터에 액세스할 수 있게 해주는 분석 함수입니다.

이 함수를 사용하면 현재 행 앞에 있는 지정된 오프셋에서 행에 액세스할 수 있습니다. 예를 들어 lead 함수를 사용하면 현재 행 바로 뒤의 행, 현재 행에서 10번째 행 등을 찾을 수 있습니다.







이 기능은 데이터베이스 개발자가 조인, 보기 사용 등과 같은 복잡한 작업 없이 행 비교를 수행하도록 유도합니다.



함수 구문

다음은 SQL Server의 lead() 함수 구문을 보여줍니다.



LEAD( scalar_expression [ ,오프셋 ] , [ 기본값 ] )
OVER ( [ 파티션별_절 ] 순서_별_절 )

후속 목록은 지원되는 인수 및 해당 기능입니다.





  1. scalar_expression – 이 인수는 정의된 오프셋을 기반으로 반환 값을 나타냅니다. 단일 값을 반환하는 모든 유형의 표현식이 될 수 있습니다. 그러나 scalar_expression의 값은 다른 분석/창 함수일 수 없습니다.
  2. 오프셋 – 현재 행 위치에서 가져온 값의 행 수를 설정합니다. 기본적으로 이 함수는 현재 행에 대한 형용사 행을 즉시 가져옵니다. 마찬가지로 오프셋 매개변수의 값은 분석 함수 또는 음의 정수일 수 없습니다.
  3. default – 이 매개변수는 제공된 오프셋 값이 대상 파티션의 범위를 벗어나는 경우 기본값을 설정합니다. 기본적으로 이 함수는 NULL을 반환합니다.
  4. PARTITION BY – partition_by 절은 결과 집합을 여러 섹션으로 나누는 규칙을 정의합니다. 그런 다음 함수는 각 결과 파티션에 적용됩니다.
  5. ORDER BY – 각 파티션의 행이 적용되는 논리적 순서를 정의합니다.

이 함수는 scalar_expression에 정의된 데이터 유형을 반환합니다. 반환된 값이 NULL이면 함수는 NULL을 반환합니다.

샘플 데이터

리드 기능을 사용하는 방법을 가장 잘 설명하기 위해 몇 가지 샘플 데이터베이스를 사용하겠습니다. 먼저 아래와 같이 쿼리를 사용합니다.



인벤토리가 있는 경우 데이터베이스를 삭제합니다.

데이터베이스 인벤토리 생성;

재고 사용;

제품이 있는 경우 드롭 테이블;

CREATE TABLE 제품(
id int ID 기본 키가 null이 아님,
제품_이름 varchar(100),
제조업체 varchar(50),
null이 아닌 수량 int,
가격 int 기본값 0,
in_stock 비트
);
제품에 삽입(product_name, manufacturer, quantity, price, in_stock)
값('Apple iPad Air', 'Apple', 100, 569.99, 1),
('Samsung Galaxy Z Flip 4', 'Samsung', 302, 1569.00, 1),
('Sony Playstation 5', 'Sony', 500, 499.99, 1),
('삼성 갤럭시 워치-5 프로', '삼성', 600, 209/.99, 1),
('애플워치 시리즈6', '애플', 459, 379.90, 1),
('애플 에어팟 프로', '애플', 200, 199.99, 1),
('55' Class S95B OLED 4K Smart TV', '삼성', 900, 1999.90, 1),
('Odyssey Ark Quantum Mini-LED Curved Gaming Screen', 'Samsung', 50, 2999.90, 1);

결과 테이블은 다음과 같습니다.

예 1 – 결과 집합에 대해 SQL Server lead() 함수 사용

아래 예제는 다음 제품의 가격을 반환하기 위해 lead() 함수를 사용합니다.

고르다
상품명,
제조업체,
수량,
가격,
납(가격,
1) 이상 (
수량순)
~에서
제품;

결과 테이블:

마지막 열의 행이 없으므로 함수는 NULL을 반환합니다.

예 2 – 파티션 세트에 대해 SQL Server lead() 함수 사용

주어진 파티션에서 다음 제품을 가져올 수도 있습니다. 예를 들어 위의 데이터를 제조업체를 기준으로 분할하고 각 분할에 lead() 함수를 적용할 수 있습니다.

예시 그림은 다음과 같습니다.

고르다
상품명,
제조업체,
수량,
가격,
납(가격,
1) 이상 (
제조업체별 파티션
수량순)
~에서
제품;

위의 쿼리는 제조업체를 기준으로 행을 나누고 각 파티션의 값에 대한 다음 가격을 가져와야 합니다.

이 경우 세 개의 파티션이 있습니다.

결론

이 게시물에서는 SQL Server의 lead() 함수 구성 요소를 이해했습니다. 또한 결과 및 파티션 세트에 대해 lead() 함수를 사용하는 방법도 배웠습니다.