欢迎来到HELLO素材网! 南京网站制作选择顺炫科技
丰富的DIV CSS模版、JS,jQuery特效免费提供下载
当前位置:主页 > 建站教程 > 网站制作教程 >

将数据表中某列查询进去的后果用逗号隔开

发表于2019-04-24 05:09| 次阅读| 来源网络整理| 作者session

摘要:将数据表中某列查询进去的后果用逗号隔开
将数据表中某列查询进去的后果用逗号隔开

  /*******************************************

  * 将数据表中某列查询进去的后果用逗号隔开

  *******************************************/

  Create Function [dbo].[f_GetCollateralName]

  (

      @CollateralIds Varchar(Max)

  )

  Returns Varchar(Max)

  As

  Begin

      Declare @thisResult Varchar(Max);

      Select @thisResult = Coalesce(@thisResult, '') + Cast(CollateralName As Varchar(Max))

            + ','

      From   BIS_Collateral

      Where  CollateralId In (Select col

                             From   dbo.f_SplitStr(@CollateralIds, ','));

    

      Set @thisResult = Isnull(@thisResult, '');

      Set @thisResult = Substring(@thisResult, 0, Len(@thisResult));

    

      Return @thisResult;

  End

  /*******************************************

  * 调用示例

  *******************************************/

  Select a.*,dbo.f_GetCollateralName(a.Collateral) CollateralName From BIS_Product a

  另附:

  辅助函数:

  /*******************************************

  * 将某蕴含多个相反字符的字符串查询为表

  *******************************************/

  CREATE function [dbo].[f_SplitStr]

  (

  @SourceSql nvarchar(max),--源分隔字符串

  @StrSeprate varchar(10)--分隔符

  )

  returns @temp table(col nvarchar(max))

  as

  begin

      declare @i int

      set @SourceSql=rtrim(ltrim(@SourceSql))

      set @i=charindex(@StrSeprate,@SourceSql)

      while @i>=1

      begin

          insert @temp values(left(@SourceSql,@i-1))

          set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)

          set @i=charindex(@StrSeprate,@SourceSql)

      end

      if @SourceSql<>'\'

         insert @temp values(@SourceSql)

      return

  end