判断 sql 中是否含有中文字符-----待验证

时间:2022-12-15 07:49:26

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')
--空