SQL中字符串中包含字符的判断方法
程序员文章站
2022-06-09 23:43:12
在sql中我判断包含字符串我们可使用很多方法,如like,replace,charindex函数都可实现我们要的功能,下面我来给各位介绍判断字符串包含字符串sql语句。...
在sql中我判断包含字符串我们可使用很多方法,如like,replace,charindex函数都可实现我们要的功能,下面我来给各位介绍判断字符串包含字符串sql语句。
通过2个函数charindex和patindex以及通配符的灵活使用
函数:charindex和patindex
charindex:查某字符(串)是否包含在其他字符串中,返回字符串中指定表达式的起始位置。
patindex:查某字符(串)是否包含在其他字符串中,返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。特殊:可以使用通配符!
例子:
1. 查询字符串中是否包含非数字字符
select patindex('%[^0-9]%', '1235x461') select patindex('%[^0-9]%', '12350461')
2. 查询字符串中是否包含数字字符
select patindex('%[0-9]%', 'suyllgoo') select patindex('%[0-9]%', 'suyllg0o')
3.函数判断字符串只包含数字
create function [dbo].fn_isnumeric ( @pstring varchar(8000) ) returns bit with encryption as begin declare @vjudge int set @vjudge = 0 select @vjudge = case when patindex('%[0-9]%', lower(@pstring)) > 0 then 0 when patindex('%[0-9]%', lower(@pstring)) = 0 then 1 end return @vjudge end
4.函数判断字符串只包含字母(忽略大小写)
create function [dbo].fn_isalpha ( @pstring varchar(8000) ) returns bit with encryption as begin declare @vjudge int set @vjudge = 0 select @vjudge = case when patindex('%[a-z]%', lower(@pstring)) > 0 then 0 when patindex('%[a-z]%', lower(@pstring)) = 0 then 1 end return @vjudge end
5. 函数判断字符串不包含任何符号(包括空格)
create function [dbo].fn_isalphanumeric ( @pstring varchar(8000) ) returns bit with encryption as begin declare @vjudge int set @vjudge = 0 select @vjudge = case when patindex('%[^a-z0-9]%', lower(@pstring)) > 0 then 0 when patindex('%[^a-z0-9]%', lower(@pstring)) = 0 then 1 end return @vjudge end
6. 函数判断字符串不包含任何符号(除空格外)
create function [dbo].fn_isalphanumericblank ( @pstring varchar(8000) ) returns bit with encryption as begin declare @vjudge int set @vjudge = 0 select @vjudge = case when patindex('%[^a-z0-9 ]%', lower(@pstring)) > 0 then 0 when patindex('%[^a-z0-9 ]%', lower(@pstring)) = 0 then 1 end return @vjudge end -- 注意:[^a-z0-9 ]模式中最后有一个空格。
用charindex()——charindex(字符,字符串)>0 –>包含 查看一段话、一篇文章里面包含什么词
select id,title,author from article where charindex(title,@item)>0
7.用like——
select * from tablename where field1 like like ‘%key%'
8.使用replace()函数
declare @item nvarchar(100) set @item='英语好难'; select id,title,author from article where len(replace(@item,title,''))<len(@item);--根据替换后的长度进行判断>2、
总结
以上所述是小编给大家介绍的sql中字符串中包含字符的判断方法,希望对大家有所帮助