求解,关于sql字符串拆分并计算的问题。ITeye环球 - 千亿集团

求解,关于sql字符串拆分并计算的问题。ITeye环球

2019-02-01 07:44:24 | 作者: 依云 | 标签: 字符串,人数,地址 | 浏览: 7616

急,望各位给出回答

数据表如下:

字段:  地址  人数
-
数据:  上海,北京  130
数据:  北京,南京,西安  500
数据:  西安  60


现想别离计算出 各地址 的人数总和,比方: 北京630人,西安560人等,假如[地址]字段有多个城市,每个城市人数别离有[人数]。如何写sql。

我有一个函数,只能拆分一个字符串。
-
SQL中字符串拆分通用函数
CREATE  FUNCTION uf_StrSplit
(@origStr varchar(7000),  待拆分的字符串
@markStr varchar(100))  拆分符号,如,
RETURNS @splittable table
(
str_id  varchar(4000) NOT NULL, 编号ID
string  varchar(2000) NOT NULL 拆分后的字符串
)
AS
BEGIN
declare @strlen int,@postion int,@start int,@sublen int,@TEMPstr varchar(200),@TEMPid int
SELECT @strlen=LEN(@origStr),@start=1,@sublen=0,@postion=1,@TEMPstr=,@TEMPid=0

if(RIGHT(@origStr,1) @markStr )
begin
  set @origStr = @origStr + @markStr
end
WHILE((@postion =@strlen) and (@postion !=0))
BEGIN
  IF(CHARINDEX(@markStr,@origStr,@postion)!=0)
  BEGIN
  SET @sublen=CHARINDEX(@markStr,@origStr,@postion)-@postion;
  END
  ELSE
  BEGIN
  SET @sublen=@strlen-@postion+1;

  END
  IF(@postion =@strlen)
  BEGIN
  SET @TEMPid=@TEMPid+1;
  SET @TEMPstr=SUBSTRING(@origStr,@postion,@sublen);
  INSERT INTO @splittable(str_id,string) values(@TEMPid,@TEMPstr)
  IF(CHARINDEX(@markStr,@origStr,@postion)!=0)
  BEGIN
  SET @postion=CHARINDEX(@markStr,@origStr,@postion)+1
  END
  ELSE
  BEGIN
  SET @postion=@postion+1
  END
  END
END
RETURN
END
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表千亿集团立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    按要求写sql句子itjob

    句子,学员,课程
  • 2

    检查数据库的SQL快报

    检查,数据库,检查表
  • 3

    DB2 备份和康复huabian

    康复,备份,数据库
  • 4

    运用MySQL头条

    运用,问题,效劳
  • 5
  • 6

    DATA PUMPfenghuang

    简略,指令,数据
  • 7

    Oracle Dimension 下alibaba

    邮编,区域,月度
  • 8

    Oracle失望锁和达观锁ITeyecsdn

    数据,时分,数据库
  • 9

    start with 用法ITeyeitjob

    子句,末梢,树形
  • 10

    mysql 根本指令ITeye头条

    用户,权限,体系