case小问题,散分啦!
原函数:CREATE   FUNCTION   dbo.search(@id      nvarchar(10)) 
 RETURNS   nvarchar(300) 
 AS 
 BEGIN 
 	DECLARE   @re   nvarchar(300) 
                                     SET   @re= ' '          
                            SELECT            @re=@re+ '- '+CAST(Station   as   varchar) 
 	FROM   tableBus 
 	WHERE   Id=@Id      order   by      StationIndex   desc 
 	RETURN(STUFF(@re,1,1, ' '))                
 END 
 现在要根据传入的参数访问不同的表。因函数不支持动态语句,所以只能用case判断@jj的值来选择不同的表,请问这case语句该如何完成   : 
 CREATE   FUNCTION   dbo.search(@id      nvarchar(10),@jj   nvarchar(20))     
------解决方案--------------------用if @jj= 'tableA ' 
   select @re=@re+ '- '.... 
   else if @jj= 'tableB ' 
   select....
------解决方案--------------------对,应该用if esle 
 case函数适合在某一单一的SQL语句中对不同情况某一字段取不同的值,而你要根据不同条件执行不同的SQL,属于分支结构。