急,望各位给出解答------
数据表如下:
字段: 地点 人数
-------------------------------------------
数据: 上海,北京 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
分享到:
相关推荐
Manacher算法:求解最长回文字符串,时间复杂度为O(N) 回文串定义:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。回文子串,顾名思义,即字符串中满足回文性质的子串。
字符串问题详解,字符串匹配,Trie树,KMP,AC自动机,Trie图详细过程,ACM字符串入门及进阶
C语言编程-编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数;
对于给定的字符串A和B,给定其字串的内容和空格相对字符的距离,使用动态规划算法求解两字符串的扩展距离。
统计某个字符串中大小写字母A或a出现的次数java 5count.rar
对C语言中字符串循环移位的问题进行详解,并给出两种方法求解。
考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序。例如: “car” “carriage” “cats” “koala” 2.根据字符串的长度排序。例如: ...
C++求解合并字符串最小成本 给定n个字符串的长度,求合并成一个字符串产生的最小成本。
但是,这些自动机不一定对应于在程序位置产生字符串值的字符串输入。为了找到这些输入值,我们需要通过反向分析来撤消字符串操作的影响。符号字符串值之间的复杂关系使此过程复杂化。这些关系是由于非单射字符串操作...
《动态规划》之--字符串比较问题(扩展距离),主要思路通过策略和无效性来求解。特点最优子结构性质,重叠子问题。
为方便起见,用123来示例下。123的全排列有123、132、213、231、312、321这六种。首先考虑213和321这二个数是如何得出的。显然这二个都是123中的1与后面两数交换得到的。然后可以将123的第二个数和每三个数交换得到...
概率论与数理统计问题的MATLAB求解.pdf
对于字符串的排列问题: 如果能生成n-1个元素的全排列,就能生成n个元素的全排列。对于只有一个元素的集合,可以直接生成全排列。所以全排列的递归终止条件很明确,只有一个元素时。我们可以分析一下全排
该资源提供了四种不同的求解字符串长度的方法
题目:如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串。注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。请编写一个函数,输入两个字符串,...
第四章 数据结构与算法 示范题的求解及剖析 示范题19、编程序,输入字符串s,统计出s ***出现了多少个数字字符。进一步考虑,如何统计出10 个数字字符各自出现的次数。
数字字符串求解三方法 评价一下效率.............
问题比较简单,给定一个字符串集合求解其中最长的公共前缀即可,这样的问题有点类似于最长公共子序列的问题,但是比求解最长最长公共子序列简单很多,因为是公共前缀,这样的话只需要挨个遍历即可,只要遍历长度结束...
简单java程序,求解一个字符串,是不是所输入字符串的字串。
最长公共子序列的算法实现,采用递归方法。