sqlserver排序規則在全形與半形處理中的應用

2021-08-29 17:53:03 字數 1542 閱讀 4028

--1.查詢區分全形與半形字元

--測試資料

declare @t table(col varchar(10))

insert @t select 'aa'

union all select 'aa'

union all select 'aa'   --全形a

union all select 'a,a'  --全形a,半形逗號(,)

union all select 'a,a' --全形a,全形逗號(,)

--1.查大寫字母

select * from @t

where col collate chinese_prc_cs_as_ws like '%a%'

--結果

aa--2.查全形字母

select * from @t

where col collate chinese_prc_cs_as_ws like '%a%'

--結果

aaa,a

a,a--3.查半形逗號(,)

select * from @t

where col collate chinese_prc_cs_as_ws like '%,%'

--結果

a,a--3.查全形逗號(,)

select * from @t

where col collate chinese_prc_cs_as_ws like '%,%'

go--結果

a,a--2 實現全形與半形字元轉換的處理函式

create function f_convert(

@str nvarchar(4000), --要轉換的字串

@flag bit              --轉換標誌,0轉換成半形,1轉換成全角

)returns nvarchar(4000)

asbegin

declare @pat nvarchar(8),@step int,@i int,@spc int

if @flag=0

select @pat=n'%[!-~]%',@step=-65248,

@str=replace(@str,n' ',n' ')

else

select @pat=n'%[!-~]%',@step=65248,

@str=replace(@str,n' ',n' ')

set @i=patindex(@pat collate latin1_general_bin,@str)

while @i>0

select @str=replace(@str,

substring(@str,@i,1),

nchar(unicode(substring(@str,@i,1))+@step))

,@i=patindex(@pat collate latin1_general_bin,@str)

return(@str)

endgo

select [dbo].[f_convert] ('aaa' ,0)

--結果

aaa

sqlserver排序規則在拼音處理中的應用

1.按拼音排序 declare t table col varchar 2 insert t select 中 union all select 國 union all select 家 union all select 人 union all select 郭 select from t orde...

全庫修改SQL Server現有排序規則

sql server備份還原後可能遇到排序規則不一致的問題,此時通過統一排序規則可以解決。詳細操作如下 資料庫報錯資訊 無法解決 equal to 運算中 sql latin1 general cp1 ci as 和 chinese prc ci as 之間的排序規則衝突。為解決排序規則衝突,可直接...

sql server 排序規則

sql server 排序規則 檢視伺服器的排序規則 select serverproperty n collation select serverproperty collation chinese prc ci as 修改資料庫的排序規則 alter database tempdb collat...