select ascii(字段)
数字:48-57
字母:65-123
汉字:123+
select * from t1 where len(unicode(c1)) < 5;
判断c1第一个字符是否是中文,小于5,非中文
SQL判断某列中是否包含中文字符、英文字符、纯数字
select * from 表名 where 列名 like '%[吖-座]%'
二、包含英文字符
select * from 表名 where 列名 like '%[a-z]%'
三、包含纯数字
select * from 表名 where 列名 like '%[0-9]%'
MSSQL判断字段是否包含中文汉字
SELECT * FROM [表名] where not PATINDEX('%[吖-做]%',[字段名])=0
找出不包含中文汉字的记录
SELECT * FROM [表名] where PATINDEX('%[吖-做]%',[字段名])=0
CREATE FUNCTION [dbo].[udf_IsContainChinese_by_slu]
(@inString nvarchar(1000))
RETURNS int
AS
BEGIN
DECLARE @flag int
DECLARE @valueLength int
SET @valueLength = LEN(@inString)
DECLARE @i int
SET @i = 1
WHILE @valueLength >= @i
BEGIN
DECLARE @ChcekValue int
SELECT @ChcekValue = ASCII(SUBSTRING(@inString,@i,1))
--SELECT @ChcekValue
if(@ChcekValue > 122)
BEGIN
-- 有中文
SET @flag = 1
-- 跳出
BREAK
END
ELSE
BEGIN
SET @flag = 0
END
SET @i = @i +1
END
RETURN @flag
END
/*****************************************/
--SQL 判断字段值是否有中文
create function fun_getCN(@str nvarchar(4000))
returns nvarchar(4000)
as
begin
declare @word nchar(1),@CN nvarchar(4000)
set @CN=''
while len(@str)>0
begin
set @word=left(@str,1)
if unicode(@word) between 19968 and 19968+20901
set @CN=@CN+@word
set @str=right(@str,len(@str)-1)
end
return @CN
end
select dbo.fun_getCN('ASDKG论坛KDL')
--论坛
select dbo.fun_getCN('ASDKG論壇KDL')
--論壇
select dbo.fun_getCN('ASDKDL')
--空