SQL查询语句,提取某个字符后面的字符

例如表A,列a
ioru@vip.qq.com
237796636@qq.com
352591780@qq.com

sl7212708@163.com
查询@后面的,并显示出来。且显示有多少个。
结果如下:
vip.qq.com 1
qq.com 2
163.com 1
拜谢。

可以使用 charindex找出@所在的位置,然后进行字符串的处理。最后再汇总。
示例如下:
select right(a,len(a) - charindex('@',2) ) a,count(1) from A
group by right(a,len(a) - charindex('@',2) )追问

这样查出来的是显示每一个的了。。和a,count(a) from A group by a 的效果一样。。。

追答

select right(a,len(a) - charindex('@',a) ) a,count(1) from A
group by right(a,len(a) - charindex('@',a) )

刚才写错了,charindex里的2要换成 a
这是根据后几位汇总了。
显示的结果肯定是如下的结果。
vip.qq.com 1
qq.com 2
163.com 1

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-02
SELECT RIGHT(a,LEN(a)-CHARINDEX('@',a)) aa,COUNT(1)
FROM A
GROUP BY RIGHT(a,LEN(a)-CHARINDEX('@',a))
第2个回答  2013-08-02
select right(a, len(a) - charindex('@',a)) ,count(*) from A
group by right(a,len(a) - charindex('@',a))
第3个回答  2013-08-02
select substring(a,PATINDEX('%@%',a),10) mc,
count(substring(a,PATINDEX('%@%',a),10)) sl
from A
group by substring(a,PATINDEX('%@%',a),10)追问

可以达到部分效果,但是限定了显示的字符,@twvampire 的这个很好用。
感谢您的回答

追答

case when PATINDEX('%@%',a)>0 一下呀

第4个回答  2013-08-02
什么数据库?追问

sql 2008

如何通过SQL截取指定字段某一个字符的前面或后面的字符串?
针对SQL Server的实现:当需截取字符串"OPE-CZ-108-003-SE71.2"中的"."字符前面的字符串时,可以采用如下SQL语句。结果为"OPE-CZ-108-003-SE71",取值范围从字段第一位置开始,至"."字符前一个位置结束。对于截取"."字符后面的字符串,同样使用SQL Server,只需调整SQL语句,从"."字符后一位...

sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗
sql语句可以截取指定字段后面的字符串,以sqlserver为例,需要用到charindex函数和substring函数。如test表中有如下数据,要求截图str字段中逗号后边的内容。可用如下语句:1 select id,substring(str,charindex(',',str)+1,len(str)-charindex(',',str)) from test;结果截图:charindex函数说明:语法:CH...

SQL查询语句,提取某个字符后面的字符
可以使用 charindex找出@所在的位置,然后进行字符串的处理。最后再汇总。示例如下:select right(a,len(a) - charindex('@',2) ) a,count(1) from A group by right(a,len(a) - charindex('@',2) )

SQL如何提取第某个特定字符前后的字符?
v = re.findall(r'_.+_.+_(.+)_', s)print("---")print(v)print("===")ABC集团_A店_A楼层_ASD商品部_日化A --- ['ASD商品部']=== ABC集团_AB店_A楼层_ASDF商品部_日化B --- ['ASDF商品部']=== 是不是相要这样的结果。

sql语句,能够截取指定字段后面的一个字符串吗?
可以的,需要用到charindex函数和substring函数。CHARINDEX函数常常用来在一段字符中搜索字符或者字符串。substring public String substring(int beginIndex)返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。

sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗
1、首先在桌面上,点击“Management Studio”图标。2、之后在该界面中,点击左上角“新建查询”选项。3、接着在该界面中,输入截取指定字段某一个字符出现后的后面的字符串的sql语句“select substring(name,charindex(',',name)+1,len(name)-charindex(',',name)) from test2;”。4、然后在该界面...

sql取字符串中符合指定字符开头指定字符结尾的部分字符串有多少?_百 ...
这个查询的主要步骤如下:使用 LOCATE 函数找出 "\/" 和 "\/" 在 script 字段中的位置。使用 SUBSTRING 函数从 script 字段中提取出位于 "\/" 和 "\/" 之间的部分字符串。注意,这个查询假设 "\/" 和 "\/" 在每个 script 字段的值中只出现一次。如果 "\/" 和 "\/" 可能出现多次,或者可能不存在,...

sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗
用substring和charindex 如test表中如下数据:现在要查询“\/”后的数据内容,用如下语句:select SUBSTRING(val,CHARINDEX('\/',val)+1,LEN(val)-CHARINDEX('\/',val)) from test结果:

sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗
select right(a,len(a) - CHARINDEX('@',a,1)) from aaa;这个是检索字段a中 "@"字符后面的字符串,如果没有"@"显示全部。

...一句话中某个字符的位置,并把该字符后面的字符全部截取出来...
需要以下两个函数:charindex,stuff select charindex('5','1234567890') --结果为:5 select stuff('1234567890',1,charindex('5','1234567890'),'')--结果为:67890

相似回答