首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于ms sql 函数的有关问题

2012-01-18 
关于ms sql 函数的问题我建立了一个名为f_hbcreatefunctionf_hb(@nuseridint)returnsvarchar(50)asbeginde

关于ms sql 函数的问题
我建立了一个名为f_hb
create   function   f_hb(@nuserid   int)
returns   varchar(50)
as
begin
    declare   @str   varchar(50)
    set   @str   =   ' '
    select   @str   =   @str   +   ', '   +   cast(ntrade   as   varchar)   from   tb_Person_Job   where   nuserid   =   @nuserid
    set   @str   =   right(@str   ,   len(@str)   -   1)
    return(@str)
End

然后建立了一个视图
create   view   view_ttt   as
select   nuserid,dbo.f_hb(nuserid)   as   nTrade   from   tb_Person_Job
group   by   nuserid

------------------------------------------------------
现在view_ttt显示的结果是这样的

nuserid         ntrade
----------   ----------------
58105             001,001,006
58104   001,001,001
58106             001,002

我想要的结果是这样的,没有重覆的

nuserid         ntrade
----------   ----------------
58105             001,006
58104   001
58106             001,002


也就是说,如何在f_hb添加一个判断语句,去掉重覆的数据

[解决办法]
create function f_hb(@nuserid int)
returns varchar(50)
as
begin
declare @str varchar(50)
set @str = ' '
select @str = @str + ', ' + cast(ntrade as varchar) from (select distinct ntrade from tb_Person_Job where nuserid = @nuserid) t
set @str = right(@str , len(@str) - 1)
return(@str)
End
go

热点排行