상세 컨텐츠

본문 제목

DataBase함수 - 스칼라 함수

청강컴정/DataBase

by luckey 2009. 3. 9. 16:28

본문

스칼라함수
* 결과값을 하나의 데이터 형태로 반환한다.
* 함수호출시 데이터베이스이름, 스키마이름을 같이 써주어야 한다.(데이터베이스이름.스키마명.함수명)

함수생성방법
create function 함수명
(
     변수명
)
RETURNS 반환될자료의 자료형
as
begin
    내용
    RETURN(반활될 자료의 변수명)
end


create table Person
(
 id tinyint primary key,
 name nvarchar(15) not null
)

insert into Person values(1, 'jung uchang')
insert into Person values(2, 'hong gildon')
insert into Person values(3, 'kim gildong')

--- 방법1 ----
create function GET_FIRST_NAME
(
 @name varchar(15)
)
RETURNS varchar(15)
as
begin
 declare @Result varchar(5)
 declare @dataLength int
 declare @i int
 set @i = 1
 select @dataLength = LEN(@name)
 set @Result = substring(@name,0,1)
 while(@i < @dataLength)
 begin
   if(substring(@name, @i, 1) = '')
   begin
     break;
   end
   else
   begin
 set @Result = @Result + substring(@name, @i, 1)
    set @i = @i + 1
    continue;
   end
 end
return (@Result)
end

실행1 : select name, Sample.dbo.GET_FIRST_NAME(name) from Person

--- 방법2 ---
create function GET_FIRST_NAME1
(
 @name varchar(15)
)
RETURNS varchar(15)
as
begin
 declare @Result varchar(15)
    declare @c char
    declare @i int
    set @Result = ''
    set @i = 1
    set @c = substring(@name, 1, 1)
    while(@c != '')
    begin
  set @Result = @Result + @c
        set @i = @i + 1
        set @c = substring(@name, @i, 1)
    end
    return (@Result)
end

실행2 : select name, Sample.dbo.GET_FIRST_NAME1(name) from Person


관련글 더보기

댓글 영역