当前位置: 移动技术网 > IT编程>数据库>MSSQL > SQL中字符串中包含字符的判断方法

SQL中字符串中包含字符的判断方法

2017年10月07日  | 移动技术网IT编程  | 我要评论

结晶氯化铝,夫妻争执烫伤儿子,徐才厚维基百科

在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中字符串中包含字符的判断方法,希望对大家有所帮助

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网