| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 파일DB
- 당진 맛집
- DB
- 강원도 동해 여행
- 샤오미
- 안드로이드
- mssql 피봇
- 데이터베이스
- 주식연말정산
- VisualStudio
- 구이바다
- SQLite
- 재능판매
- 티스토리
- 셀레니움
- MSSQL
- C#
- 저장프로시저
- 재능마켓
- 크몽
- 티스토리 활동
- mssql 피벗
- 재능마켓 사이트
- 재능마켓 후기
- 여름맞이
- MSSQL PIVOT
- 캠핑
- git
- DevExtreme
- 제주도여행
- Today
- Total
고땡 세상만사
MSSQL 함수 작성법 본문
MSSQL에서는 함수를 사용할 수 있는 기능을 제공하고 있다.
함수의 종류는 시스템함수와 사용자 정의함수로 나뉘어 진다.
정확하게 말하자면, 우리는 여기에서 사용자 정의함수를 작성하는 방법에 대해 설명할것인데, 그 전에 시스템 함수는 무엇인지 설명하고 넘어가도록 하겠다.
시스템함수는?

시스템함수는 MSSQL에서 제공하여 바로 사용할 수 있는 함수이다. (개념은 사용자정의함수와 마찬가지인데, 개발자가 직접 정의하여 만들어 사용하는 함수가 사용자 정의 함수라고 보면 이해하기 쉽다.)
시스템함수종류로는 집계함수, 구성함수, 커서함수, 날짜 및 시간함수 등 다양하게 제공되어지고 있고 대표적으로Avg(), Max() 등 다양한부분으로 존재하니, 사용자 정의 함수를 만들기 전 검색을 통해 비슷한 기능을 하는 함수를 제공하는지 먼저 참고해보면 좋을것 같다.
사용자정의 함수는?
사용자정의함수는 개발자가 직접 정의하여 사용할 수 있는 함수를 말한다.
쿼리를 작성하면서 자주 사용되는 기능을 함수로 정의하여 재사용 할 수 있으므로, SQL문이 더욱 간결하고 가독성이 증가하게 된다.
내가 프로그램을 개발하면서 자주 사용하는 함수는 스칼라반환함수와 테이블반환함수이다.
(스칼라반환함수를 대체적으로 많이쓴다.)
스칼라반환함수 작성예시
CREATE FUNCTION [dbo].[TEST_FUNCTION]
(
--@P_PRAMETER1 VARCHAR(100) 사용할경우 주석 해제
)
RETURNS VARCHAR(100)
AS
BEGIN
RETURN 'HELLOW FUNCTION'
END
스칼라반환함수는 한개의 값을 반환하는 함수이다. 여기에서 반환하는 값의자료형식(INT, VARCHAR, NUMERIC 등)을 지정하여 반환 할 수 있다.
함수를 수정해야 할경우 CREATE를 ALTER로 변경하면 된다.
함수를 삭제해야 할 경우 DROP 을 사용하면 된다.
SELECT dbo.[TEST_FUNCTION]() 를 이용하여 함수의 결과값을 확인한다.
테이블반환함수 작성예시
CREATE FUNCTION [dbo].[TEST_TABLE_FUNCTION]
(
)
RETURNS @RETURN_TB TABLE
(
NAME VARCHAR(10)
,AGE INT
)
AS
BEGIN
INSERT INTO @RETURN_TB VALUES('박지성', 30)
INSERT INTO @RETURN_TB VALUES('이영표', 35)
RETURN
END
테이블반환함수는 DB테이블을 반환하는 함수이다.
테이블 반환함수는 반환할 테이블의 형태를 지정하고, 데이터를 담아서 리턴해주면 된다.
함수를 수정해야 할경우 CREATE를 ALTER로 변경하면 된다.
함수를 삭제해야 할 경우 DROP 을 사용하면 된다.
SELECT * FROM [dbo].[TEST_TABLE_FUNCTION]() 를 이용하여 함수의 결과값을 확인한다.
여러분의 공감과 댓글이 큰 힘이됩니다 :)
▼▼▼▼▼▼▼▼▼▼▼'프로그래밍 > MS-SQL' 카테고리의 다른 글
| MSSQL PIVOT 여러컬럼 동적으로 수행하기 (1) | 2019.08.28 |
|---|---|
| MSSQL PIVOT 동적으로 수행하기 (0) | 2019.08.21 |
| MSSQL 저장프로시저(StoredProcedure) 작성법 (0) | 2019.07.30 |
| MSSQL 커서(CURSOR) 사용법 (0) | 2019.07.30 |
| [MS-SQL] CRUD 자동 스크립트 작성 내용 공유 (0) | 2019.07.12 |
