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中字符串中包含字符的判断方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-09-25 21:06:25

SQL中字符串中包含字符的判断方法的相关文章

c++-C++中字符串中交换字符的问题

问题描述 C++中字符串中交换字符的问题 // char* s = "12";//为什么使用这样的方式会报错? char s[] = "12"; char t; t = s[0]; s[0] = s[1]; s[1] = t; 解决方案 char* s = "12"; 这里s指向的是常量区的字符串12,不能修改. 必须用 char [] temp = "12"; char *s = &temp[0]; 解决方案二: 有

js判断一个字符串是否包含一个子串的方法_javascript技巧

本文实例讲述了js判断一个字符串是否包含一个子串的方法.分享给大家供大家参考.具体如下: 在我们前端日常开发中,经常会遇到判断一个字符串中是否包含某个子串,这里我们将去探究一些解决此种需求的方法以及正确的使用它们.理想情况下,我们要找的是一个能匹配我们的目的(if x contains y)的方法,并返回true或false. 一.String.prototype.indexOf和String.prototype.lastIndexOf 这两个方法,可能是我们最容易想到的,如果包含子串,则返回大

PowerShell中字符串分行显示的两种方法技巧

  这篇文章主要介绍了PowerShell中字符串分行显示的两种方法技巧,本文直接给出代码实例,需要的朋友可以参考下 复制代码 代码如下: $a="1111111111111111111111101111111111111111111111111111111111111110111111111111111111011111 11111111111111111111111111111111111111111111111111111111111111111111111101111" 字符串

PHP针对字符串开头和结尾的判断方法_php技巧

本文实例讲述了PHP针对字符串开头和结尾的判断方法.分享给大家供大家参考,具体如下: //变量: $s1 = "dotcoo world!"; $s2 = "dotcoo"; $s3 = "hello dotcoo"; //php判断字符串开头: var_dump(substr($s1, 0, strlen($s2)) === $s2); var_dump(strpos($s1, $s2) === 0); var_dump(strncmp($s1

正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度_javascript技巧

判断是否存在中文和全角字符 str.match(/[^\x00-\xff]/ig) 判断包含中文字符串长度 aMatch=str.match(/[^\x00-\x80]/g); str.length+(!aMatch?0:aMatch.length) javascript 判断中文字符长度 一种: 复制代码 代码如下: function _length(str){ var len=0; for(var i=0;i<str.length;i++){ if(str.charAt(i)>'~'){l

sql删除字符串中重复字符

现在需要对后面电话号码相同的记录进行过滤,删除只剩下一条.  代码如下 复制代码 20051218125830_5988312367.vox 20051218125850_5988312367.vox 20051218135407_5932733345.vox 20051218175857_5923922228.vox 20051218180045_5923922228.vox 过滤后剩下的记录为: 20051218125830_5988312367.vox 20051218135407_593

SQL计算字符串中最大的递增子序列的方法_mssql2005

求字符串中最大的递增子序列 数据库环境:SQL SERVER 2005 如题,求字符串"abcbklmnodfghijkmer"中最大的递增子序列.这个字符串有点特别, 只由26个小写字母a-z组成. 大概思路如下: 1.将字符串转到一列存储,并生成行号 2.设置一个递增计数器列,默认为1,比较上下行的字符,如果在字典中的顺序是递增, 则计数器加1,否则,计数器置1 3.找出计数器最大的数及对应的行号,根据这2个数截取字符串 思路有了,下面直接贴代码 DECLARE @vtext VA

Sql: 去除字符串中的相同的字符串函數

---去除字符串中重復的值函數 create function StringRemove(@str nvarchar(2000)) returns varchar(2000) as begin declare @result nvarchar(2000),@temp nvarchar(1000) set @result='' set @temp='' while(charindex(',',@str)<>0) begin set @temp=substring(@str,1,charindex

PHP和sql去除字符串首尾特定字符或空格

PHP去除字符串首尾特定字符函数trim() <?php   $a="(a,b,c,)"; echo $a."<br/>"; //输出:(a,b,c,) $b=trim($a,"()"); //去除字符串首尾含有的字符"("或")" echo $b."<br/>"; //输出:a,b,c, $c=trim($a,"(,)"); //去除字