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

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
时间: 2024-08-08 03:09:03

标量值函数—— 判断是否存在特殊字符的相关文章

sqlserver中的表值函数和标量值函数

顾名思义:表值函数返回的是表,而标量值函数可以返回基类型 一.表值函数 用户定义表值函数返回 table 数据类型.对于内联表值函数,没有函数主体:表是单个 SELECT 语句的结果集. 以下示例创建了一个内联表值函数.此函数的输入参数为客户(商店)ID,而返回 ProductID.Name 以及 YTD Total(销售到商店的每种产品的本年度节截止到现在的销售总额)列. USE AdventureWorks; GO CREATE FUNCTION Sales.fn_SalesByStore

SQL表值函数和标量值函数的区别

写sql存储过程经常需要调用一些函数来使处理过程更加合理,也可以使函数复用性更强,不过在写sql函数的时候可能会发现,有些函数是在表值函数下写的有些是在标量值下写的,区别是表值函数只能返回一个表,标量值函数可以返回基类型.举个例子,当用户删除一个节点的时候,是需要将当前节点下的所有子节点都删掉,如果程序只传一个当前节点,那就需要写一个函数来得到当前节点下的所有子节点,这些子节点的信息就可以放到一个表中返回. ALTER FUNCTION testGetSubNodes ( @nodeId int

(转)表值函数,标量值函数详解

顾名思义:表值函数返回的是表,而标量值函数可以返回基类型 表值函数 用户定义表值函数返回 table 数据类型.对于内联表值函数,没有函数主体:表是单个 SELECT 语句的结果集. 以下示例创建了一个内联表值函数.此函数的输入参数为客户(商店)ID,而返回 ProductID.Name 以及 YTD Total(销售到商店的每种产品的本年度节截止到现在的销售总额)列. USE AdventureWorks; GO CREATE FUNCTION Sales.fn_SalesByStore (@

sql 表值函数与标量值函数

写sql存储过程经常需要调用一些函数来使处理过程更加合理,也可以使函数复用性更强,不过在写sql函数的时候可能会发现,有些函数是在表值函数下写的有些是在标量值下写的,区别是表值函数只能返回一个表,标量值函数可以返回基类型. 举个例子,当用户删除一个节点的时候,是需要将当前节点下的所有子节点都删掉,如果程序只传一个当前节点,那就需要写一个函数来得到当前节点下的所有子节点,这些子节点的信息就可以放到一个表中返回. ALTER FUNCTION testGetSubNodes ( -- Add the

数据库创建标量值函数

1 create FUNCTION [dbo].[ispm] (@pmfrist int) 2 RETURNS int 3 AS 4 BEGIN 5 DECLARE @ISvalue int 6 if @pmfrist>0 and @pmfrist<11 7 begin 8 set @ISvalue=1 9 end 10 else 11 begin 12 set @ISvalue=0 13 end 14 RETURN(@ISvalue) 15 END 16 17 数据库创建标量值函数

sql中的表值函数与标量值函数区别与用法

通俗来讲: 听名字就知道区别了 表值函数返回的是一张表结果,就和一个select查询语句一样,只不过里面带入了参数或者很复杂:标量值函数返回的只是一个值 一 .表值函数又分为内联函数与多语句函数 (1)内联函数就是没有函数主体表是单个 SELECT. 下面是一个不带输入参数的表值函数 create function tvpoints() returns table as return ( select * from tb_users ); 调用-这个结果返回的是一张表: select * fro

表值函数,标量值函数

表值函数:ALTER FUNCTION getTable( )RETURNS TABLE ASRETURN ( select * from tb)取值:select * from getTable( )标量函数:ALTER FUNCTION [dbo].[CamOnlineAverage]   (      @projId INT ,      @startDate DATETIME ,      @endDate DATETIME    )RETURNS  Float ASBegin    

EF中使用数据库的标量值函数

参考资料:https://msdn.microsoft.com/zh-cn/library/dd456847(v=vs.110).aspx http://stackoverflow.com/questions/12481868/how-to-use-scalar-valued-function-with-linq-to-entity 1.首先修改edmx里添加的这个<Function>,将IsComposable属性改为false,去掉ReturnType属性,然后添加子节点<Comma

SQL标量值函数:小写金额转大写

我们日常开发业务系统中,作为统计报表中,特别是财务报表,显示中文金额经常遇到. 转换大小写的方法有很多,以下是从数据库函数方面解决这一问题. 效果如图: 调用:SELECT dbo.[Fn_ConvertRMB](192.4) 具体函数如下: -- ============================================= -- 调用:SELECT dbo.[Fn_ConvertRMB](192.4) -- Create date: 2015-01-06 -- Descripti