테이블 반환 UDF

SQL Server에서 함수와 저장 프로시저 작성하기

Meghan Kwartler

IT Consultant

인라인 테이블 반환 함수(ITVF)

CREATE FUNCTION SumLocationStats (
  @StartDate AS datetime = '1/1/2017'
) RETURNS TABLE AS RETURN 
SELECT 
  PULocationID AS PickupLocation, 
  COUNT(ID) AS RideCount, 
  SUM(TripDistance) AS TotalTripDistance 
FROM YellowTripData 
WHERE CAST(PickupDate AS Date) = @StartDate 
GROUP BY PULocationID;
SQL Server에서 함수와 저장 프로시저 작성하기
CREATE FUNCTION CountTripAvgFareDay (
  @Month char(2), 
  @Year char(4)
) RETURNS @TripCountAvgFare TABLE(
  DropOffDate date, TripCount int, AvgFare numeric
) AS BEGIN INSERT INTO @TripCountAvgFare 
SELECT 
  CAST(DropOffDate as date), 
  COUNT(ID), 
  AVG(FareAmount) as AvgFareAmt 
FROM YellowTripData 
WHERE 
  DATEPART(month, DropOffDate) = @Month 
  AND DATEPART(year, DropOffDate) = @Year 
GROUP BY CAST(DropOffDate as date)
RETURN END;
SQL Server에서 함수와 저장 프로시저 작성하기

차이점 - ITVF vs. MSTVF

인라인

  • SELECT 결과를 RETURN
  • SELECT에 테이블 열 이름 포함
  • 테이블 변수 불필요
  • BEGIN/END 불필요
  • INSERT 불필요
  • 성능 더 빠름

다중 문장

  • 반환할 테이블 변수 DECLARE
  • BEGIN/END 블록 필요
  • 테이블 변수에 INSERT
  • BEGIN/END 내 마지막 문장을 RETURN
SQL Server에서 함수와 저장 프로시저 작성하기

이제 여러분 차례!

SQL Server에서 함수와 저장 프로시저 작성하기

Preparing Video For Download...