A simple user defined function returning a custom table
create function fn_day2string( @lang_id varchar(2) )
RETURNS @rtn_tab TABLE( day_id int , day_name nvarchar(100))
AS begin
if @lang_id = 'en'
begin
insert into @rtn_tab values( 1 , 'Monday')
insert into @rtn_tab values( 2 , 'Tuesday')
insert into @rtn_tab values( 3 , 'Wednesday')
insert into @rtn_tab values( 4 , 'Thursday')
insert into @rtn_tab values( 5 , 'Friday')
insert into @rtn_tab values( 6 , 'Saturday')
insert into @rtn_tab values( 7 , 'Sunday')
end
if @lang_id = 'de'
begin
insert into @rtn_tab values( 1 , 'Montag')
insert into @rtn_tab values( 2 , 'Dienstag')
insert into @rtn_tab values( 3 , 'Mittwoch')
insert into @rtn_tab values( 4 , 'Thursday')
insert into @rtn_tab values( 5 , 'Freitag')
insert into @rtn_tab values( 6 , 'Samstag')
insert into @rtn_tab values( 7 , 'Sontag')
end
if @lang_id = 'bg'
begin
insert into @rtn_tab values( 1 , N'Понеделник')
insert into @rtn_tab values( 2 , N'Вторник')
insert into @rtn_tab values( 3 , N'Сряда')
insert into @rtn_tab values( 4 , N'Четвъртък')
insert into @rtn_tab values( 5 , N'Петък')
insert into @rtn_tab values( 6 , N'Събота')
insert into @rtn_tab values( 7 , N'Неделя')
end
return;
end
To test the function you can execute one of the following scripts
- select * from fn_day2string( 'en' )
- select * from fn_day2string( 'de' )
retrieve the German weekdays
- select * from fn_day2string( 'bg' )
retrieve the Cyrillic representation of the Bulgarian weekdays