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

 更新时间:2017年09月12日 09:24:10   作者:东边的小山  
在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中字符串中包含字符的判断方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • sqlserver数据库如何修改实例名称

    sqlserver数据库如何修改实例名称

    这篇文章主要介绍了sqlserver修改实例名称的实例代码,代码简单易懂,修改完重启服务器就可以了,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • SQLServer导入数据图文方法

    SQLServer导入数据图文方法

    有时需要将别的数据库的内容,导入到当前数据库中,就需要导入数据即可。下面是详细的图文方法。
    2010-07-07
  • sql中的 where 、group by 和 having 用法解析

    sql中的 where 、group by 和 having 用法解析

    这篇文章主要介绍了sql中的 where 、group by 和 having 用法解析,需要的朋友可以参考下
    2017-04-04
  • SQL中SYSDATE函数的具体使用

    SQL中SYSDATE函数的具体使用

    本文主要介绍了SQL中SYSDATE函数的具体使用,它主要用来获取服务器当前的日期和时间,这对于进行实时数据记录,具有一定的参考价值,感兴趣的可以了
    2024-06-06
  • SQL Server优化50法汇总

    SQL Server优化50法汇总

    虽然查询速度慢的原因很多,但是如果通过一定的优化,也可以使查询问题得到一定程度的解决
    2013-08-08
  • 升级SQL Server 2014的四个要点要注意

    升级SQL Server 2014的四个要点要注意

    升级一个关键业务SQL Server实例并不容易,它要求有周全的计划。计划不全会增加遇到升级问题的可能性,从而影响或延迟SQL Server 2014的升级。在规划SQLServer 2014升级时,有一些注意事项有助于避免遇到升级问题,需要的朋友可以参考下
    2015-08-08
  • Microsoft SQL Server数据库各版本下载地址集合

    Microsoft SQL Server数据库各版本下载地址集合

    这篇文章主要介绍了Microsoft SQL Server数据库各版本下载地址集合,需要的朋友可以参考下
    2020-10-10
  • SqlServer 在事务中获得自增ID的实例代码

    SqlServer 在事务中获得自增ID的实例代码

    这篇文章主要介绍了 SqlServer 在事务中获得自增ID实例代码的相关资料,需要的朋友可以参考下
    2017-03-03
  • php使用pdo连接sqlserver示例分享

    php使用pdo连接sqlserver示例分享

    在开发PHP程序时我们可以借助多种连接方式访问各类的数据库获取所需的数据。自PHP5以来PDO作为新生事物将所有数据库接口收入囊中,为开发人员提供了方便快捷的数据库读取方式。本文将介绍如何在Linux服务器配置PHP与SQL Server的连接
    2014-01-01
  • SQL update select结合语句详解及应用

    SQL update select结合语句详解及应用

    这篇文章主要介绍了SQL update select结合语句详解及应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论