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,属于分支结构。