zoukankan      html  css  js  c++  java
  • 标量值函数—— 判断是否存在特殊字符

    Create    FUNCTION [dbo].[IsOnlyNumAndEngth] --只允许数字,字幕和一个额外的特殊字符
        (
          @str VARCHAR(8000),
          @escape1 CHAR = '' --额外的特殊字符
        )
    RETURNS BIT
    AS 
        BEGIN 
            DECLARE @i INT 
            DECLARE @j INT 
            DECLARE @k BIT 
            DECLARE @g CHAR
            SET @i = DATALENGTH(@str) 
            SET @j = 1 
            SET @k = 1 
            IF @str = '' 
                BEGIN
                    SET @k = 0 
                END
            WHILE @j <= @i 
                BEGIN 
                    SET @g = SUBSTRING(@str, @j, 1)
                    IF ( ASCII(@g) NOT IN ( ASCII('1'), ASCII('2'), ASCII('3'),
                                            ASCII('4'), ASCII('5'), ASCII('6'),
                                            ASCII('7'), ASCII('8'), ASCII('9'),
                                            ASCII('0'), ASCII('Q'), ASCII('W'),
                                            ASCII('E'), ASCII('R'), ASCII('T'),
                                            ASCII('Y'), ASCII('U'), ASCII('I'),
                                            ASCII('O'), ASCII('P'), ASCII('A'),
                                            ASCII('S'), ASCII('D'), ASCII('F'),
                                            ASCII('G'), ASCII('H'), ASCII('J'),
                                            ASCII('K'), ASCII('L'), ASCII('Z'),
                                            ASCII('X'), ASCII('C'), ASCII('V'),
                                            ASCII('B'), ASCII('N'), ASCII('M'),
                                            ASCII('q'), ASCII('w'), ASCII('e'),
                                            ASCII('r'), ASCII('t'), ASCII('y'),
                                            ASCII('u'), ASCII('i'), ASCII('o'),
                                            ASCII('p'), ASCII('a'), ASCII('s'),
                                            ASCII('d'), ASCII('f'), ASCII('g'),
                                            ASCII('h'), ASCII('j'), ASCII('k'),
                                            ASCII('l'), ASCII('z'), ASCII('x'),
                                            ASCII('c'), ASCII('v'), ASCII('b'),
                                            ASCII('n'), ASCII('m'),
                                            ASCII(@escape1) ) ) 
                        BEGIN 
                            SET @k = 0 
                            BREAK 
                        END
                    SET @j = @j + 1 
                END 
            RETURN   @k 
        END
    勤劳一日,便得一夜安眠;勤劳一生,便得幸福长眠。
  • 相关阅读:
    《将博客搬至CSDN》
    关于数据分析师出路的思考
    什么样的人适合学金融工程?
    再谈到计算机网络的学习
    学习金融工程的随笔
    走上量化投资道路的回顾
    idea构建docker镜像并发布到服务器
    Elastic:菜鸟上手指南
    分布式事务专题
    mysql 慢查询日志分析与使用
  • 原文地址:https://www.cnblogs.com/zhaomengmeng/p/6076877.html
Copyright © 2011-2022 走看看