原函数: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))
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))
select @re=@re+'-'....
else if @jj='tableB'
select....
case函数适合在某一单一的SQL语句中对不同情况某一字段取不同的值,而你要根据不同条件执行不同的SQL,属于分支结构。