A~Z :65~90
a~z :97~122
0~9 : 48~57
–漢字unicode編碼范圍:[0x4e00,0x9fa5](或十進制[19968,40869])
SELECT *
FROM dbo.person
WHERE UNICODE(zz) BETWEEN 19968 AND 40869
或
WHERE UNICODE(zz) BETWEEN 0x4e00 AND 0x9fa5
經常我們會用到判斷某個字符或者字符串是否包含中文,英文,特殊符號等等。這時候可以通過判斷Unicode所在區間來確定某個字符所處類型。當然可以通過直接判斷Unicode碼,但是鑒於習慣,以下提供的是Unicode碼對應的數字區間。畢竟字符的本質也就是通過二進制進行存儲編碼的而已。
漢字:[0x4e00,0x9fa5](或十進制[19968,40869])
數字:[0x30,0x39](或十進制[48, 57])
小寫字母:[0x61,0x7a](或十進制[97, 122])
大寫字母:[0x41,0x5a](或十進制[65, 90])
其他:除上所有
1.SQL trim()函數去掉兩頭空格
ltrim()去除左空格rtrim()去除右空格。去除兩頭空格就是 select ltrim(rtrim(字段))
2.replace()函數替換字符
按照ASCII碼
select char(64) 對應@ 那么 select replace(‘abc@163.com’,char(64),‘d’)
結果: abcd163.com
去掉tab為 select replace(‘字段’,char(9),’’)
去掉空格為 select replace(‘字段’,char(32),’’)
去掉換行為 select replace(‘字段’,char(10),’’).
SqlServer 獲取字符串中小寫字母的sql語句
SQL字符串截取(SubString)
作用:返回第一個參數中從第二個參數指定的位置開始、第三個參數指定的長度的子字符串。
有時候我們會截取字符串中的一些特殊想要的東西,大小寫字母、模號、漢字、數字等等,今天先介紹一個獲取字符串中小寫字母(也是大寫字母)的方式,直接上寫法:
復制代碼
DECLARE @s VARCHAR(MAX)= ‘AbcdEf奧奧’ --待截取字符串
DECLARE @temp VARCHAR(MAX)=’’ --臨時變量
SELECT @temp=@temp+SUBSTRING(ch, sv.number, 1)
FROM (SELECT @s AS ch) t
CROSS APPLY [master].dbo.spt_values AS sv
WHERE sv.type = ‘P’
AND sv.number BETWEEN 1 AND LEN(ch)
AND ASCII(SUBSTRING(ch, sv.number, 1)) BETWEEN ASCII(‘a’) AND ASCII(‘z’)
SELECT @temp
復制代碼
這樣我們就獲取到了小寫字母,當然我們還可以獲取大寫字母:
復制代碼
SELECT @temp=@temp+SUBSTRING(ch, sv.number, 1)
FROM (SELECT @s AS ch) t
CROSS APPLY [master].dbo.spt_values AS sv
WHERE sv.type = ‘P’
AND sv.number BETWEEN 1 AND LEN(ch)
AND ASCII(SUBSTRING(ch, sv.number, 1)) BETWEEN ASCII(‘A’) AND ASCII(‘Z’)
SELECT @temp