当前位置: 代码迷 >> Sql Server >> case小疑点,散分啦
  详细解决方案

case小疑点,散分啦

热度:29   发布时间:2016-04-27 16:25:03.0
case小问题,散分啦!
原函数: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,属于分支结构。
  相关解决方案