sql首字母查询
‘壹’ 求sql数据库搜索的语句,要求是按输入每个英文单词的首字母搜索,例如
其实这个问题是一个
数据库设计
问
题。需要实现类似功能,通常是在一张表中同时存在汉字和拼音两个字段,例如userinfo表有username=张三,同时存在
pinyin=zhangsan。这样在实现首字母查询时就可以通过select
*
from
user
where
pinyin
like
'z%'
方便得到用户名为张三的数据。
‘贰’ 如何查询首字母为‘a’的记录 sql server
查询首字母为‘a’的记录使用到的是,sql server模糊查询语句。
一、模糊查询使用到LIKE 操作符,用于在 WHERE 子句中搜索列中的指定模式。
二、SQL LIKE 操作符语法
SELECTcolumn_name(s)
FROMtable_name
WHEREcolumn_nameLIKEpattern
注:pattern会使用到‘%’通配符,表示任意字符或字符串
三、实例演示:
1、实例表格:exp_test
‘叁’ sql中怎么根据汉字的拼音首字母查询
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
-- SQLServer:
---测试数据---
if object_id('[pactinfo]') is not null drop table [pactinfo]
go
create table [pactinfo]([ID] int,[pactname] varchar(4))
insert [pactinfo]
select 1,'正常' union all
select 2,'中国' union all
select 3,'做饭' union all
select 4,'加发'
---引用前辈们的一个函数---
create function f_GetPy(@str nvarchar(4000))
returns nvarchar(4000)
as
begin
declare @strlen int,@re nvarchar(4000)
declare @t table(chr nchar(1) collate Chinese_PRC_CI_AS,letter nchar(1))
insert into @t(chr,letter)
select '吖 ', 'A ' union all select '八 ', 'B ' union all
select '嚓 ', 'C ' union all select '咑 ', 'D ' union all
select '妸 ', 'E ' union all select '发 ', 'F ' union all
select '旮 ', 'G ' union all select '铪 ', 'H ' union all
select '丌 ', 'J ' union all select '咔 ', 'K ' union all
select '垃 ', 'L ' union all select '呒 ', 'M ' union all
select '拏 ', 'N ' union all select '噢 ', 'O ' union all
select '妑 ', 'P ' union all select '七 ', 'Q ' union all
select '呥 ', 'R ' union all select '仨 ', 'S ' union all
select '他 ', 'T ' union all select '屲 ', 'W ' union all
select '夕 ', 'X ' union all select '丫 ', 'Y ' union all
select '帀 ', 'Z '
select @strlen=len(@str),@re= ' '
while @strlen> 0
begin
select top 1 @re=letter+@re,@strlen=@strlen-1
from @t a where chr <=substring(@str,@strlen,1)
order by chr desc
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'
---结果---
ID pactname
----------- --------
1 正常
2 中国
3 做饭
(所影响的行数为 3 行)
‘肆’ SQL语句如何查询首字母大写
select * from 表 where 字段 collate chinese_prc_cs_as_ws like 'A%' (查大写 )
select * from 表 where 字段 collate chinese_prc_cs_as_ws like 'a%' (查小写 )
--就是在字段名后加 collate chinese_prc_cs_as_ws
‘伍’ 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中如何输入各个汉字的首字母进行查询
类似的功能我做过,有表和
存储过程
,
汉字
转pinying,再查询。
‘柒’ sql中怎么根据汉字的拼音首字母查询
---测试数据---
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查询字段中怎么去判断是以某字母开头
方法1:用%即可达到。
例如:SELECT*FROMusersWHEREemaillike"%b@email.com%"。
方法2:使用mysql字符串函数find_in_set();
SELECT*FROMusersWHEREfind_in_set('aa@email.com',email);
注意,mysql字符串函数find_in_set(str1,str2)返回str2中str1的位置索引,str2必须被分割成“,”。
方法3:多值模糊查询,使用mysql正则:REGEXP。
这个方法相当于(比如'%1%'或'%3%'或'%5%')。
从'by_content'中选择*,其中标题REGEXP'(1|,3|5)'。
(8)sql首字母查询扩展阅读:
Mysql字符串函数:FIND_IN_SET()
语法:
strlistFIND_IN_SET(STR)
第一个参数STR是要查找的字符串。
第二个参数strlist是要搜索的字符串的逗号分隔列表。
如果字符串STR位于由N个子链组成的字符串行表中,则返回值的范围为1到N。
字符串行表是由','符号分隔的子链组成的字符串。如果第一个参数是常量字符串,第二个参数是类型集列,则FIND_IN_SET()函数被优化为使用位。
如果STR不在strlist中,或者strlist是空字符串,则返回值为0。如果任何参数为空,则返回值为空。当第一个参数包含逗号(',')时,此函数将无法正常工作。
‘玖’ 求sql数据库搜索的语句,要求是按输入每个英文单词的首字母搜索,例如
其实这个问题是一个数据库设计问
题。需要实现类似功能,通常是在一张表中同时存在汉字和拼音两个字段,例如userinfo表有username=张三,同时存在
pinyin=zhangsan。这样在实现首字母查询时就可以通过select * from user where pinyin like
'z%' 方便得到用户名为张三的数据。
‘拾’ sql中怎么根据汉字的拼音首字母查询
您好:
您这个需求还是增加一个拼音辅助列比较合适。
这个辅助列的生成,可以通过其他程序来完成。
另外。您还需要考虑多音字的问题。