sql 函数



表 j_gjc



想实现的结果:wenzhangid相同、leixing相同的关键词,放到一列中,每个关键词之间以分号分隔,例如:

wenzhangid 为 18968的,最后结果应为   超流Fermi气体;非谐振势;集体激发


用sql函数实现


函数,将 j_gjc 表中的 关键词 写到 xhl11 表中

/* 定义 函数,将中文关键词累加到一列*/


create function [dbo].[f_get_gjc_cn](@uid varchar(50)) returns varchar(2000)
AS
begin
  declare @r varchar(2000)
  set @r=''
  select @r=@r+(rtrim(guanjianci)+';') from j_gjc a  where  a.WenZhang_Id=@uid and a.LeiXing='CN'
   order by WenZhang_Id,ID
  
  while CHARINDEX(';;',@r)>0
  begin
    select @r=replace(@r,';;',';')    
  end
  return @r
end


/* 定义 函数,将英文文关键词累加到一列*/
create function [dbo].[f_get_gjc_en](@uid varchar(50)) returns varchar(2000)
AS
begin
  declare @r varchar(2000)
  set @r=''
  select @r=@r+(rtrim(guanjianci)+';') from j_gjc a  where  a.WenZhang_Id=@uid and a.LeiXing='EN'
   order by WenZhang_Id,ID
  
  while CHARINDEX(';;',@r)>0
  begin
    select @r=replace(@r,';;',';')    
  end
  return @r
end




update xhl11 set
gjc=dbo.f_get_gjc_cn(a.id)
from xhl11 a
where dbo.f_get_gjc_cn(a.id)<>''


update xhl11 set
gjc_en=dbo.f_get_gjc_en(a.id)
from xhl11 a
where dbo.f_get_gjc_en(a.id)<>''

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值