【SQL Server】Sql字符串ID转换成名字

分类:数据库| 发布:camnprbubuol| 查看: | 发表时间:2010/9/30

在做人才网时,遇到一个问题,多个职位保存到一个字段里,存的是职位的ID,那么读取出来要变成职位的名字,用数据库怎么实现呢?今天重要实现了,贴出来分享一下。

CREATE FUNCTION [dbo].[GetRowsNameStr](@SourceSql nvarchar(500),@StrSeprate nvarchar(10))    --字符串格式41,56,77, 
RETURNS nvarchar(500) 
AS 
begin 
    declare @names nvarchar(500) 
    declare @i int 
    set @names=’’
    set @SourceSql=rtrim(ltrim(@SourceSql)) 
    set @i=charindex(@StrSeprate,@SourceSql) 
    while @i>=1 
    begin         
        set @names=@names+(select I_Name from U_Post where ID=convert(int,left(@SourceSql,@i-1)))+’,’ 
        set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)  --已经转换好的去掉 
        set @i=charindex(@StrSeprate,@SourceSql)       --重新定位 
    end     
    --return @names 
    if @SourceSql<>’’and @i>=1   --最后一个 
    begin 
         set @names=@names+(select I_Name from U_Post where ID=convert(int,left(@SourceSql,@i-1))) 
    end 
  if(right(@names,1)=’,’) --去掉后面的逗号 
        set @names=substring(@names,1,len(@names)-1)  
 
    return @names 
end 


--select I_Name,dbo.GetRowsNameStr(’1,2,3,4,5’,’,’) as ddd from U_Post where ID<3

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/database/55.html