SqlServer 2012 에서 LEAD 함수 에 대한 간단 한 분석
3040 단어 SqlServer2012LEAD
DECLARE @TestData TABLE(
ID INT IDENTITY(1,1),
Department VARCHAR(20),
LastName VARCHAR(20),
Rate FLOAT
)
INSERT INTO @TestData(Department,LastName,Rate)
SELECT 'Document Control','Arifin',17.7885 UNION ALL
SELECT 'Document Control','Norred',16.8269 UNION ALL
SELECT 'Document Control','Kharatishvili',16.8269 UNION ALL
SELECT 'Information Services','Chai',10.25 UNION ALL
SELECT 'Information Services','Berge',10.25 UNION ALL
SELECT 'Information Services','Trenary',50.4808 UNION ALL
SELECT 'Information Services','Conroy',39.6635 UNION ALL
SELECT 'Information Services','Ajenstat',38.4615 UNION ALL
SELECT 'Information Services','Wilson',38.4615 UNION ALL
SELECT 'Information Services','Connelly',32.4519 UNION ALL
SELECT 'Information Services','Meyyappan',32.4519
SELECT * FROM @TestData
이상 은 원본 데이터 입 니 다.아래 에 LEAD 함 수 를 사용 하여 다른 줄 의 데 이 터 를 현재 줄 로 추출 하 는 방법 을 보 겠 습 니 다.
LEAD 함 수 는 ID 가 2 인 줄 의 LastName 값 을 첫 줄 에 추출 하여 새 열 NEXTuser 로 표시 합 니 다.
아래 이것 은 두 줄 간격 으로 데 이 터 를 추출 하 는 것 입 니 다.바로 세 번 째 줄 의 데 이 터 를 현재 줄 로 추출 하 는 것 입 니 다.다른 줄 은 순서대로 누 르 고 그림 을 보 는 것 입 니 다.
이 함 수 는 모두 세 개의 인 자 를 받 아들 입 니 다.첫 번 째 는 표현 식 입 니 다.상기 예제 에서 사용 하 는 필드 입 니 다.다른 효과 적 인 표현 식 일 수도 있 습 니 다.두 번 째 인 자 는 offset 입 니 다.즉,몇 줄 간격 으로 데 이 터 를 가 져 오 는 지,세 번 째 는 기본 간격 입 니 다.즉,offset 이 지정 되 지 않 았 을 때 이 를 기준 으로 합 니 다.
예 를 들 어 상기 코드 를 예 로 들 면
LEAD(LastName,2,0)
그 2 를 지정 하지 않 았 을 때 는 0 간격 으로 행동 하고 그 2 를 지정 할 때 는 2 줄 간격 으로 데 이 터 를 가 져 오기 때문에 세 번 째 매개 변 수 는 지정 하지 않 아 도 되 고 효 과 는 같 습 니 다.다음 그림 과 같 습 니 다.
LEAD 함수 에 대응 하 는 함수 가 하나 더 있 습 니 다.LAG,다음 그림 효 과 를 보 세 요.
위의 그림 에서 보 듯 이 이 함 수 는 위 줄 에서 데 이 터 를 가 져 오 는 것 입 니 다.다른 간격 매개 변수의 의미 와 같이 LEAD 는 아래 줄 에서 데 이 터 를 가 져 옵 니 다.TAG 는 반대로 위 줄 에서 데 이 터 를 가 져 옵 니 다.여기까지 쓰 면 마이너스 가 지정 되면 함수 로 합 칠 수 있 지 않 을 까 생각 합 니 다.생각 을 시험 해 보다.
오류,offset 인 자 는 마이너스 가 될 수 없습니다.형 은 댓 글 을 하지 않 습 니 다.,The End.