SQLServer 字元長度

2021-07-14 05:32:46 字數 960 閱讀 4604

要求:過濾資料庫中某個字串 字段 中的單個字母或是數字

開始的時候使用 sql 函式  len

select * from table1 wherelen(name)>1

結果其中的單個漢字也過濾掉了。這個函式返回的是字串的長度。

於是使用另乙個長度函式 datalength

select * from table1 wheredatalength(name)>1

結果中過濾了單個字母和數字,而漢字單個返回的長度為2,所以沒有過濾掉。

要求:獲得混合字串中的中文

如果漢字在右邊

declare @s varchar(20)

set @s='4b工程師'

--如果你的漢字都在右邊

selectright(@s,(datalength(@s)-len(@s)))

/*工程師

*/提取中文的函式

--提取中文

if object_id('dbo.china_str') isnot null

drop function dbo.china_str

gocreate function dbo.china_str(@snvarchar(100))

returns varchar(100)

asbegin

while patindex('%[^吖-座]%',@s) > 0

set @s = stuff(@s,patindex('%[^吖-座]%',@s),1,n'')

return @s

endgo

print dbo.china_str('呵呵abc123abc')

SQL server 2000常用字串長度總結

char 固定長度的非 unicode 字元資料,最大長度為 8,000 個字元。varchar 可變長度的非 unicode 資料,最長為 8,000 個字元。text 可變長度的非 unicode 資料,最大長度為 2 31 1 2,147,483,647 個字元。unicode 字串 ncha...

JS PHP MySQL 字元長度

摘要 js的string.length 屬性取的是字串的實際長度 php的str len 函式取的是字串的位元組長度,中文utf 8佔3個位元組,gb2312佔2個位元組 mysql中的varchar型別長度,指字元長度 乙個漢字在utf 8編碼中占用幾個位元組?占用3個位元組的範圍 u 2e80 ...

Mysql group concat字元長度限制

語句如下 select a id as id a category name as category name concat group concat separator as drug data from drug category a left join drug b on a id b cat...