sql拼音首字母
Ⅰ sql语句提取出中文的拼音首字母
那我估计不行。
只能把汉字的拼音,存在另一个字段。
当然你也写个对照表。
如:
张 zhang
这样,你插入时,也把zhang插入到拼音字段里(你自己定义的varchar)。
张三 zhang;san //用分号来分隔
做查询时把zhang;san 用数组来存储,接着读取第一个下标的首字母。
(jsp、asp:split() 就行,php没学过 )
Ⅱ sql中怎么根据汉字的拼音首字母查询
--SQLServer:
---测试数据---
ifobject_id('[pactinfo]')isnotnulldroptable[pactinfo]
go
createtable[pactinfo]([ID]int,[pactname]varchar(4))
insert[pactinfo]
select1,'正常'unionall
select2,'中国'unionall
select3,'做饭'unionall
select4,'加发'
---引用前辈们的一个函数---
createfunctionf_GetPy(@strnvarchar(4000))
returnsnvarchar(4000)
as
begin
declare@strlenint,@renvarchar(4000)
declare@ttable(chrnchar(1)collateChinese_PRC_CI_AS,letternchar(1))
insertinto@t(chr,letter)
select'吖','A'unionallselect'八','B'unionall
select'嚓','C'unionallselect'咑','D'unionall
select'妸','E'unionallselect'发','F'unionall
select'旮','G'unionallselect'铪','H'unionall
select'丌','J'unionallselect'咔','K'unionall
select'垃','L'unionallselect'呒','M'unionall
select'拏','N'unionallselect'噢','O'unionall
select'妑','P'unionallselect'七','Q'unionall
select'呥','R'unionallselect'仨','S'unionall
select'他','T'unionallselect'屲','W'unionall
select'夕','X'unionallselect'丫','Y'unionall
select'帀','Z'
select@strlen=len(@str),@re=''
while@strlen>0
begin
selecttop1@re=letter+@re,@strlen=@strlen-1
from@tawherechr<=substring(@str,@strlen,1)
orderbychrdesc
if@@rowcount=0
select@re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1
end
return(@re)
end
---查询---
select
*
from
[pactinfo]
where
left(dbo.f_GetPy(pactname),1)='Z'
---结果---
IDpactname
-------------------
1正常
2中国
3做饭
(所影响的行数为3行)
Ⅲ SQL Server 如何提取汉字首字母
这个我以前写过, 要用 C# 来写, 然后 发布到 SQL Server 上面去。
你要是会 C# 的话, 倒可以尝试尝试, 否则就不必下载附件了。
那个项目还引用了 Microsoft.International.Converters.PinYinConverter 这个类库。
你可能还要去微软网站找来下载一下。
或者用其他的算法, 通过汉字, 返回拼音的。
Ⅳ 求注释一小段 sql语句。
你这个代码有点问题,‘M’对应的汉字不是'呒',而应该是口字旁加繁体的无。这个字会被度娘自动转码,所以我截个图:
selecttop1letterfrom@twherechr<=[取出汉字]
就可以得到该取出汉字所对应的拼音首字母。
如果上句没有取到值(@@rowcount=0),说明取出的字符比'吖'还要小,也就是说取出的字符不是汉字而是字母、数字或标点。此时不需要取它的拼音首字母。
Ⅳ sql 如何按照汉字的拼音的首字母顺序来查询!~!~
字段1内的数据是汉字
最后在where查询语句的后面加上
order by 字段1 就可以了
补充:
order by 是排序
order by 字段1 desc 为倒序
Ⅵ sql 取中文的拼音首字母
Create Function f_GetallPy(@chn nvarchar(100))
returns varchar(30)
as
begin
declare @i int,@j int,@result varchar(100)
set @result=''
set @i=len(@chn)
set @j=1
while @j<=@i
begin
set @result = @result + dbo.f_GetPy(substring(@chn,@j,1))
set @j=@j+1
end
return @result
end
这样你就明白了吧
Ⅶ asp中sql语句怎么能按姓名的首字母排序
sql中按姓名拼音排序 select isnull(b.py,upper(left(a.username,1))) as py
,a.username
from (
select 'a3' as username
union select UserName from UserTable --修改这里的姓名列~
)
a
left outer join (
select 'A' as PY,N'骜' as word, N'啊' as sword
union select 'B',N'簿',N'骜'
union select 'C',N'错',N'簿'
union select 'D',N'鵽',N'错'
union select 'E',N'樲',N'鵽'
union select 'F',N'鳆',N'樲'
union select 'G',N'腂',N'鳆'
union select 'H',N'夻',N'腂'
union select 'J',N'攈',N'夻'
union select 'K',N'穒',N'攈'
union select 'L',N'鱳',N'穒'
union select 'M',N'旀',N'鱳'
union select 'N',N'桛',N'旀'
union select 'O',N'沤',N'桛'
union select 'P',N'曝',N'沤'
union select 'Q',N'囕',N'曝'
union select 'R',N'鶸',N'囕'
union select 'S',N'蜶',N'鶸'
union select 'T',N'箨',N'蜶'
union select 'W',N'鹜',N'箨'
union select 'X',N'鑂',N'鹜'
union select 'Y',N'韵',N'鑂'
union select 'Z',N'咗',N'韵'
) b on left(username,1) between b.sword and b.word
where UserName<>'a3' and py='A' --这里的and py='A'是查询以A拼音开头的姓名,你可以 改成其他的,或者直接去掉就是查询所有的~
order by py
Ⅷ SQL获取汉字首字母方法
先把汉字转成拼音,然后取第一个字母,转拼音可参考http://wenku..com/link?url=_EMDG0__Pt5zouVxBXciJ__,取第一个字母=left(字符串,1)