/******************************************************************/
/* 2006년 11월 3일 제출 Report */
/* Subject : DBMS (II)*/
/* Report :: 사용자 정의 함수 2개 만들기. 두수비교 & 두수의 차 구하기*/
/* 학번 : 0 2 0 6 1 0 7 */
/* 성명 : 강 명 구*/
/*****************************************************************/
/* 1) 두 수를 입력 받아서 값이 큰 수를 출력하는 함수 */
use tempdb --tempdb 데이터베이스를 사용함.
-- 만들고자 하는 사용자 정의 함수가 잇으면 먼저 삭제함.
if object_id('dbo.sfn_max') is not null
drop function dbo.sfn_max
go
-- 함수만들기
create function dbo.sfn_max
(@num1 varchar(20), @num2 varchar(20))
returns varchar(20)
begin
if @num1 is null -- or @num2 is null
set @num1='두 수를 입력하세요'
if @num1 > @num2
set @num1 = @num1
else
set @num1 = @num2
if @num1 is null
set @num1='두 수를 입력하세요'
return @num1
end
go
/* 스칼라 함수 호출 */
print dbo.sfn_max(80, 90)
print dbo.sfn_max(154, 90)
print dbo.sfn_max(null, 20)
print dbo.sfn_max(20, null)
print dbo.sfn_max(null, null)
/* 2) 두 수를 입력 받아서 두 수의 차를 구하는 함수 */
drop FUNCTION dbo.sfn_difff
CREATE FUNCTION dbo.sfn_difff
( @num1 INT , @num2 INT ) -- 입력은 INT형식
RETURNS INT -- 반환할 함수값 INT형
BEGIN
DECLARE @difff INT-- aa선언
SET @diff = 0
BEGIN
IF @num2 > @num1
SET @diff = @num2 - @num1
ELSE if @num1 > @num2
SET @diffF = @num1 - @num2
ELSE
SET @AA = 00
end
RETURN @AA
END
GO
print dbo.sfn_difff ('11','30')
print dbo.sfn_difff ('40,40')
print dbo.sfn_difff ('30,11')


당신의 의견을 작성해 주세요.