通过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

  1. 函数判断字符串不包含任何符号(包括空格)
    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

  2. 函数判断字符串不包含任何符号(除空格外)
    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 –>包含
转自:http://blog.163.com/cristianojzhou@126/blog/static/16633540420108811274988/

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

  1. 字符串--java中判断字符串是否为数字的方法的几种方法?

    ava中判断字符串是否为数字的方法: 1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < ...

  2. java中判断字符串是否为数字的方法的几种方法

    1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); i++){ ...

  3. (转载)java中判断字符串是否为数字的方法的几种方法

    java中判断字符串是否为数字的方法: 1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < ...

  4. PHP中判断字符串是否包含某个字符时,建议使用正则表达式preg_match()

    判断字符串中是否包含 某个字符时,在java中时直接使用 indexOf()来判断的 在php中好像也要对应的,strpos(),stripos() 不过每次我用的都很不爽,老是出现各种各样的小问题, ...

  5. C#中判断字符串中包含某个字符

    C#判断字符串是否存在某个字符,如果存在进行替换.   //定义一个字符串 string  str=".net/Java/asp.net"; //检验“/” if(str.Cont ...

  6. c# 数组 字符串 C#中判断字符串中包含某个字符

    string str = "1,2,3,4,5,6,7";            string[] strArray = str.Split(','); //字符串转数组      ...

  7. C# 中判断字符串是否包含另一段字符串,请使用 Contains

    使用:Contains 比 IndexOf 的性能提高很多. 因为 Contains 是判断某个字符串是否在另外一个字符串中,而IndexOf需要返回下标值.

  8. JS中判断字符串中出现次数最多的字符及出现的次数

    <script type="text/javascript"> var str = 'qwertyuilo.,mnbvcsarrrrrrrrtyuiop;l,mhgfd ...

  9. Java中判断字符串中相同字符的个数

    public static int countStr(String str1, String str2) { int counter=0; if (str1.indexOf(str2) == -1)  ...

随机推荐

  1. Android消息推送之GCM方式(一)

    <声明> 转载请保留本来源地址: http://blog.csdn.net/wzg_1987/article/details/9140371 首先,你需要使用一个谷歌账号登录谷歌Api控制 ...

  2. “Will not add file alias 'samefile' ('SameFile' already exists in index)” when `git add/commit` operation

    从远程仓库pull下来的代码有两个类类名首字母小写出现如下情况 然后我想删了重新写一下(就是把这个类删了,代码复制到名字正确的类里面),然后commit的时候出现这个错误,后来删一个commit一下, ...

  3. Bootstrap UI层收藏介绍

    Table组件使用的是bootstrap table,之所以用它是因为它的API比较全,并且博主觉得它的风格适用于各种类型的设备,无论是PC端还是手机端都都能很好的兼容各种浏览器.现将相关内容收藏如下 ...

  4. Chrome浏览器加载CSS文件TTFB waiting超时的奇葩问题

    今天本来调试 requirejs 加载js异常的问题,试了下Chrome浏览器,结果意外发现这个 CSS 加载异常的BUG,非常非常奇怪. 本地测试环境是 wi7x64 安装的 XAMPP 3.2.1 ...

  5. GroupingView点击分组标题不展开,或点击标题部分文字不展开

    GroupingView结构:    分组标题groupTextTpl是用两个DIV 来进行修饰的,在mouseDown时,EXT会查找css class=".x-grid-group-hd ...

  6. Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8

    1,Project Structure里确认两个地方:Project sdk以及project language level 2,Project Structure->Modules里Sourc ...

  7. 从minist database(t10k-images-idx3-ubyte)中读取图片

    matlab代码(亲测,可运行出来): % Matlab_Read_t10k-images_idx3.m % 用于读取MNIST数据集中t10k-images.idx3-ubyte文件并将其转换成bm ...

  8. android之活动状态、生存期、启动模式

    活动状态:1.运行状态2.暂停状态3.停止状态4.销毁状态 活动的生存期 七个回调方法1.onCreate()2.onStart()3.onResume()4.onPause()5.onStop()6 ...

  9. tcp异常终止连接

    服务端: #include <sys/socket.h> #include <unistd.h> #include <sys/types.h> #include & ...

  10. quagga源码分析--通用库command

    quagga作为一个路由器软件,自然要提供人机接口. quagga提供snmp管理接口,而且,自然就会有对应的命令行管理格式,当然一般路由软件不会提供界面形式的,也许有webui,然而quagga并没 ...