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