AdventureWorks에 있는 사용자 정의 함수
AdventureWorks 예제 OLTP 데이터베이스에는 다양한 Transact-SQL 사용자 정의 함수가 포함되어 있습니다. CLR(공용 언어 런타임) 사용자 정의 함수의 예는 CLR 프로그래밍 기능 예제에서 사용할 수 있습니다.
CLR 사용자 정의 함수
다음 표에서는 사용할 수 있는 CLR 사용자 정의 함수의 예제를 설명합니다. CLR 사용자 정의 함수에 대한 자세한 내용은 CLR User-Defined Functions를 참조하십시오.
예제 | 설명 |
---|---|
기본 제공 함수와 동일한 문자열 수정 기능을 제공할 뿐만 아니라 추가 보완 문자 인식 기능을 통해 유니코드 및 보완 문자의 문자열을 모두 처리할 수 있는 Transact-SQL 문자열 함수의 5가지 구현 예를 보여 줍니다. 이 5가지 함수는 len_s(), left_s(), right_s(), sub_s() 및 replace_s()이며 각각 기본 제공 문자열 함수 LEN(), LEFT(), RIGHT(), SUBSTRING() 및 REPLACE()에 해당합니다. |
|
SQLCLR In-process 데이터 액세스 공급자의 다양한 기능을 보여 주는 몇 가지 간단한 함수가 포함되어 있습니다. |
|
C# 및 Microsoft Visual Basic으로 작성되었으며 쉼표로 구분된 문자열을 열이 하나인 테이블로 분리하는 스트리밍 테이블 값 함수가 포함되어 있습니다. 또한 문자열 열을 쉼표로 구분된 문자열로 변환하는 집계 함수도 포함되어 있습니다. |
|
Currency 사용자 정의 유형의 인스턴스를 반환하는 통화 변환 함수가 포함되어 있습니다. |
|
어셈블리 메타데이터를 Transact-SQL로 반환하는 함수가 포함되어 있습니다. 여기에는 어셈블리의 형식을 테이블로 반환하는 예제 스트리밍 테이블 값 함수와 사용자 정의 유형의 필드, 메서드 및 속성을 반환하는 함수가 포함됩니다. 스트리밍 테이블 값 함수, Microsoft .NET Framework 리플렉션 API 및 Transact-SQL의 테이블 값 함수 호출 등의 기술을 보여 줍니다. |
Transact-SQL 사용자 정의 함수
다음 표에서는 AdventureWorks 예제 OLTP 데이터베이스에 포함되어 있는 Transact-SQL 사용자 정의 함수를 설명합니다. Transact-SQL 사용자 정의 함수에 대한 자세한 내용은 사용자 정의 함수 이해를 참조하십시오.
사용자 정의 함수 | 설명 | 입력 매개 변수 | 반환 값 |
---|---|---|---|
ufnLeadingZeros |
지정된 정수 값에 선행 0을 추가하는 스칼라 함수이며 varchar(8) 데이터 형식을 반환합니다. |
@valueint |
@ReturnValuevarchar(8) |
ufnGetContactInformation |
테이블 값 함수의 복잡한 쿼리를 캡슐화하여 데이터에 쉽게 액세스할 수 있게 만듭니다. |
@contactidint |
ContactIDint, FirstNamenvarchar(50), LastNamenvarchar(50), JobTitle nvarchar(50), ContactType nvarchar(50) |
ufnGetProductDealerPrice |
지정된 날짜의 제품 가격을 기준으로 특정 제품의 딜러 가격을 계산하는 스칼라 함수입니다. |
@productIDint, @orderdate datetime |
@DealerPricemoney |
예
1. dbo.ufnLeadingZeros 사용
다음 예에서는 ufnLeadingZeros
함수를 사용하여 Customer
테이블의 기존 CustomerID
열에서 고객 계정 번호를 만듭니다.
USE AdventureWorks;
GO
SELECT CustomerID,('AW' + dbo.ufnLeadingZeros(CustomerID))
AS GenerateAccountNumber
FROM Sales.Customer
ORDER BY CustomerID;
GO
2. dbo.ufnGetContactInformation 사용
AdventureWorks 데이터베이스의 Contact 테이블에는 직원, 고객(대리점 담당자 또는 개별 소비자) 및 공급업체 담당자의 이름이 포함되어 있습니다. 테이블 값 함수 ufnGetContactInformation
은 지정된 ContactID
에 대한 행 하나를 반환합니다.
USE AdventureWorks;
GO
SELECT ContactID, FirstName, LastName, JobTitle, ContactType
FROM dbo.ufnGetContactInformation(2200);
GO
SELECT ContactID, FirstName, LastName, JobTitle, ContactType
FROM dbo.ufnGetContactInformation(5);
GO
3. dbo.ufnGetProductDealerPrice 사용
다음 예에서는 ufnGetProductDealerPrice
함수를 사용하여 ProductListPriceHistory
테이블의 모든 제품에 대한 할인된 딜러 가격을 반환합니다.
USE AdventureWorks;
GO
SELECT ProductID, ListPrice, dbo.ufnGetProductDealerPrice(ProductID, StartDate) AS DealerPrice,
StartDate, EndDate
FROM Production.ProductListPriceHistory
WHERE ListPrice > .0000
ORDER BY ProductID, StartDate;
참고 항목
관련 자료
AdventureWorks에 있는 SQL Server 개체
CREATE FUNCTION(Transact-SQL)