sql中如何按某字段值的首字母分组?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中如何按某字段值的首字母分组?相关的知识,希望对你有一定的参考价值。

如一字段有值:
x001
x003
p005
y0093

分组结果应为.X=2,p=1,y=1

select count(*),left(a,1) from table group by left(a,1)

这里假设这个字段名称为a了,表名为table,

请根据你的实际情况修改一下即可.
参考技术A 设table1字段col1
select ..... from table1 group by left(col1,1)
参考技术B select * from table group by where id like 'x%' 参考技术C select ..... from table1 group by subsrting(col1,1,1) 参考技术D 我赞成muqiao520这们朋友的做法,很好

sql中怎么提取大写字母,例如给了一个人的英文姓名,然后用它们的首字母做缩写,Lily James LJ

参考技术A -----In Oracle
select
replace(
replace(
translate(
'Lily James',
'abcdefghijklmnopqrstuvwxyz',
rapd('#',26,'#')
),
'#',
''),
' ',
'')
from t1

--In MSSQL
create function udf_GetFirst
(
@string varchar(max)
)
return varchar(max)
begin
declare @length int,@increment int,@newString varchar(max)
declare @curChar char(1),@preChar char(1)
set @length=len(@string)
set @increment=1
set @newString=''
set @preChar=' '
set @string=lower(@string)
while @increment<=@length
begin
set @curChar=substring(@string,@increment,1)
set @newString=@newString+
case when @preChar=' '
then upper(@curChar) else @curChar end
set @preChar=@curChar
end
return(@newString)
end

以上是关于sql中如何按某字段值的首字母分组?的主要内容,如果未能解决你的问题,请参考以下文章

java如何给中文名字 按拼音的首字母分组

sql中怎么提取大写字母,例如给了一个人的英文姓名,然后用它们的首字母做缩写,Lily James LJ

仅从 varchar 字段中选择单词的首字母

使用charAt循环数组以获取javascript中每个值的首字母

mysql获取字段拼音各首字母的问题

SQL Server 如何提取汉字首字母