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中怎麼根據漢字的拼音首字母查詢
您好:
您這個需求還是增加一個拼音輔助列比較合適。
這個輔助列的生成,可以通過其他程序來完成。
另外。您還需要考慮多音字的問題。