码迷,mamicode.com
首页 > 其他好文 > 详细

标量值函数—— 判断是否存在特殊字符

时间:2016-11-18 11:51:41      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:font   cape   ret   数字   log   判断   bit   varchar   while   

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

 

标量值函数—— 判断是否存在特殊字符

标签:font   cape   ret   数字   log   判断   bit   varchar   while   

原文地址:http://www.cnblogs.com/zhaomengmeng/p/6076877.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!