sql中如何统计一字段中字符串的个数

我建一张表temp结构如下:
=======================
1、id int 4
2、nr ntext 16
=======================

记录内容为:
====================================
id nr
1 123 234 232 123
2 191 2234 191 3321 267 2654 123
3 212 233 244 298
=======================================
注意:nr字段中的字符串间有一空格,最后一个字符串的最后也有一空格

我想问:怎么统计一条记录中nr字段的字符串个数,且统计的字符串不重复,如第一条记录的nr字段的字符串个数为4个,第二条记录的nr字段的字符串个数为6个(而不是7个)。
数据库是sql server 的,不过我不会写存储过程,请yaweiinfo帮忙解决一下。

declare @s varchar(100)

set @s='156434A27kAsdABCiosd-01&**('

--找出现的次数

select len(@s)-len(replace(@s,'A',''))

SQL中字符串截取函数(SUBSTRING)

1、left(name,4)截取左边的4个字符

列:

SELECT LEFT(201809,4) 年

结果:2018

2、right(name,2)截取右边的2个字符

SELECT RIGHT(201809,2) 月份

结果:09

扩展资料

sql中group by用法:

GROUP BY可以先从字面上来理解,GROUP表示分组,BY后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,GROUP BY比较类似Excel里面的透视表。

GROUP BY必须得配合聚合函数来用,分组之后可以计数(COUNT),求和(SUM),求平均数(AVG)等。

常用聚合函数:count() 计数、sum() 求和、avg() 平均数、max() 最大值、min() 最小值。

SELECT 语句指定了两列(Customer 和 SUM(OrderPrice))。"SUM(OrderPrice)" 返回一个单独的值("OrderPrice" 列的总计),而 "Customer" 返回 6 个值(每个值对应 "Orders" 表中的每一行)。因此,我们得不到正确的结果。不过,您已经看到了,GROUP BY 语句解决了这个问题。

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-02-19
用replace , 将空格替换成‘’,就是空的,
然后跟原先的字符长度比较, 得出的就是字符串的个数。
嘿嘿~ 刚刚想到的。

select id, len(nr) - len(replace(nr,' ' , '') )
from temp本回答被提问者采纳
第2个回答  推荐于2017-09-03
declare @s varchar(100)
set @s='156434A27kAsdABCiosd-01&**('
--找出现的次数
select len(@s)-len(replace(@s,'A',''))
--结果
3.
第3个回答  2009-02-19
select len(REPLACE (nr , ' ' , '' )) from temp

len是取长度的,replace是用空取代空格
这结合就是你要的答案
你试试
第4个回答  2009-02-19
看你用什么样的数据库去实现,sql server , oracle 所使用的函数语句有出入的。查查具体数据库的函数、语句。做个存储过程应该就能搞定

sql中如何统计一字段中字符串的个数
1、left(name,4)截取左边的4个字符 列:SELECT LEFT(201809,4) 年 结果:2018 2、right(name,2)截取右边的2个字符 SELECT RIGHT(201809,2) 月份 结果:09

sql查询一个字段中有多少个特定字符串
select len(字段名)-len(replace(字段名,'特殊字符','')) from 表名 --比如查询字符串 '123+456+789' 中有多少个加号'+'select len('123+456+789')-len(replace('123+456+789','+','')) from 表名

Sql Server 计算某个字符 在字符串中有多少
引言:比如有一个字符串“oiddiaj\/j9jkl\/88ol”,想要计算字符串中\/的个数,用到len这个方法 [sql] view plain copy len('oiddiaj\/j9jkl\/88ol')-len(replace('oiddiaj\/j9jkl\/88ol','\/',''))想判断某个字符包含在某个字段内可以用charindex函数 ...

现在用sql语句查出来字段里包含某个字符串的所有记录怎么查
一般用substring函数截取出特定字段,如--用户姓名第二个字是'大'字的select * from Users where SUBSTRING(UserName,2,1)='大'第二种方法就是直接like模糊查询,看具体情况使用select * from Users where UserName like '%大%'

我需要用sql语句来查询 某个字段值 中包含一个 特定字符串 的所有数据...
使用模糊查询 假设字段为名 Samp 查询Samp中包含“#”这个字符,表名为 A SELECT * FROM A WHERE Samp like '%#%' ;值得注意的是你查询的特定字符串中,包含“_”或“%”就要使用转义符“\\”例如你要查询的特定字符串是“_@”SELECT * FROM A WHERE Samp like '%\\_@%' ESCAPE '\\'...

SQL查询中,如何判断一个字符串字段的内容的长度
实现的方法和详细的操作步骤如下:1、首先,打开sql查询器,并连接相应的数据库表,例如store表,如下图所示。2、其次,完成上述步骤后,单击工具栏的“查询”选项,然后输入如下代码,如下图所示。3、最后,完成上述步骤后,单击“运行”选项来查询所需结果,如下图所示。这样,以上的问题就解决了。

你好!请问怎么怎么用sql server求一段字符串中数字个数?请给出详细代码...
declare @index int declare @count int set @count = 0 set @repchar = '[0-9]'set @str = 'erp2wer8u'set @index = patindex('%'+@repchar+'%',@str)while ( @index <> 0 )begin set @count = @count + 1 set @str = stuff(@str,patindex('%'+@repchar+'%',@str...

用t-sql语句 统计一个字符串中数字,字母,空格以及其他字符的数量
INSERT INTO TSET_VAR VALUES ('AA S 1# 2');create function tj (str varchar(8000))returns @s table (空格 int,数字 int,字母 int,其他 int)AS BEGIN declare @i int = 1 declare @kg int = 0 declare @sz int =0 declare @zm int =0 declare @qt int =0 declare @x ...

我想用sql计算某个表里的记录中,关于某个字段的字数统计
如果notes前五个字相同,按五个字排序 如果notes前四个字相同,按四个字排序 那你NOTES里面只要有6个以上的,那就都会按6个字排序吧。按上面讲的,你有3种情况,那就会有3种排列,不可能同时用3种排列吧。你最多可以按NOTES的字符数来排列,字符最多的排第一位,最少的排最后面。

SQL怎么统计个数
1、统计平均数:SELECT AVG(column) FROM tb_name 该 SQL 语法用于统计某一数值类型字段的平均数,AVG() 内不能是多个字段,字符串等类型虽然可以执行,但无意义。2、统计数据之和:SELECT SUM(column) FROM tb_name 该 SQL 语法用于统计某一数值类型字段的数值之和,SUM() 内不能是多个字段,...

相似回答