日期:2014-05-18  浏览次数:20566 次

请教一个sqlserver2005的函数返回表值的问题
create     function     get_name(@id     int)    
returns     varchar(1000)    
as    
begin    
  declare     @str     varchar(1000)    
  set     @str= ' '    
  select     @str=GivenName+ ', '+FamilyName     from     Patients     where     PatientNum=@id    
  return     @str    
end    
 
这是返回一个值,如果我想返回GivenName和FamilyName     两列又该如何写呢?    
实在太菜,作业说要用inline     table     valued     函数  

比如通过这样select       * from       get_name   (9) order   by   id 得到第9行的记录,多谢啊


------解决方案--------------------
CREATE FUNCTION get_names (@id int)
RETURNS TABLE
AS
RETURN
(
SELECT GivenName,FamilyName from Patients where PatientNum=@id
);
GO
select * from dbo.get_names(1001)