SqlServer查询行中是否包含中文字符
方法一:
SELECT *
FROM dbo.person
WHERE zz LIKE '%[吖-座]%';
--这种方法管不管用取决于你的sql使用的编码格式
方法二:
--汉字unicode编码范围:[0x4e00,0x9fa5](或十进制[19968,40869])
SELECT *
FROM dbo.person
WHERE UNICODE(zz) BETWEEN 19968 AND 40869
或
WHERE UNICODE(zz) BETWEEN 0x4e00 AND 0x9fa5
--这种方法适用于中文字符在前的(中国CN)或全是中文的行(中国我爱你),像(CN中国)这种的数据就查不出来。
方法三:LEN():获取字符串字符数;DATALENGTH():获取字符串字节数;当字符数和字节数不相同表面存在中文或中文符号
SELECT *
FROM dbo.person
WHERE LEN(zz)<>DATALENGTH(zz)
--这种能不能使,也取决于你的编码格式
注:从我的经验来说方法三最好用。
SQL查询字段包含英文字符:
select * from table1 where 列名 like '%[a-z]%'
SQL查询字段包含纯数字
select * from table1 where 列名 like '%[0-9]%'