首先掌握sql中分割字符串的方法:
declare
@sql
varchar(2000),@tsql
nvarchar(max),@split
varchar(100)
set
@sql='1,3,5,6,8'
--保存的字符
set
@split=','--分隔符
select
@tsql='select
'''+replace(@sql,@split,'''
union
all
select
''')+''''
exec(@tsql)
----完成之后将查询结果保存在一张临时表中。
然后使用
select
count()
,
字段名
from
表名
group
by
字段名
就可以得到您想要的结果了。
希望对您有所帮助!
去除左边的空格可以用Ltrim函数,去除右边的空格可以用Rtrim函数,支持Trim函数的数据库可以用它同时删除左边和右边的空格。
至于删除中间的空格那就得编写自定义函数了,不同的数据库管理系统的写法不尽相同,原理就是循环读取每个字符如果碰到空格就将其剔除掉,编写好自定义函数后在sql语句里调用该函数就行了。
那个根本不是空格,而是按tab键生成的,或者全角的空格之类的,反正不是常见的标识了,你先把他select from where a like ''查询出来,复制出来,看看是空格还是什么其他的,然后在替换 火车trim,顺便说一句,sqlserver好像不支持trim吧,只支持ltrim跟rtrim吧
SQL中如果需要去掉空格的话使用LTRIM或RTRIM。LTRIM去掉表达式左边空格,RTRIM去掉右边。解决方法如下:
1、首先,去掉字符串str开始处(从左侧开始)的空格,可以利用ltrim()函数,l代表left,即为左边。
2、去掉字符串str结尾处(从右侧开始)的空格,可以利用rtrim()函数,r代表right,即为右边。
3、还有可以去掉字符串str开始和结尾处的空格,利用trim()函数。
4、有时需要去掉指定位置下的字符串,利用trim(str1 from str),表示将去掉字符串str中开始处和结尾处的字符串str1。
5、最后字符串中生成多个空格,简单的方法是调用space(n),返回n个空格,代码如下:select concat('&',space(5),'')。
思路大概是这样:
实用ltrim或者rtrim函数去掉左边或右边符合条件的字符。
如果是oracle环境,看你这里都是字母在前数字在后的格式,假设旧列叫 col_old,新的字母列是col_str,新的数字列是col_num
update table1 set
col_str=rtrim(col_old,'1234567890'),
col_num=to_number(ltrim(col_old,rtrim(col_old,'1234567890')))
sql server 有没有这个函数不知道了,反正这是一个思路吧。供参考而已
sql没有这个东西,那我就给你提个思路吧,语句你自己写了,我没有环境。
用ASCII码和sql的ltrim和rtrim来做,你需要循环找到从左起每个字符都是ASCII>=65(9以上即字母)的,直到找到ASCII<=64的就结束,这样可以把这个字符部分的长度得到,在用trim函数截取一下就可以了。
以上就是关于sql字符串 分组语句全部的内容,包括:sql字符串 分组语句、求助能去除左边,右边,中间有空格的SQL语句、去掉数据库字段中的空格等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)