精华内容
下载资源
问答
  • matlab基础:函数FUNCTION编写

    万次阅读 2018-05-10 10:41:21
    1.编写test函数function [o,p,q,r] = test( n )%%%%%%%%%%%%%%%编写function test函数%%%%%%%%%%%%%%%%%%%%%%test函数变量为n,返回值为o,p,q,ro= 0;p=0;q=6;r=128;for i = 1:n o = o + i; p=p+1; q=q.*n r=r.^...

    1.编写test函数

    function [o,p,q,r] = test( n )%%%%%%%%%%%%%%%编写function test函数

    %%%%%%%%%%%%%%%%%%%%%%test函数变量为n,返回值为o,p,q,r

    o= 0;
    p=0;
    q=6;
    r=128;
    for i = 1:n
        o = o + i;
        p=p+1;
        q=q.*n
        r=r.^0.2
        

    end


    2.调用tset函数的main函数

    clear all;
    clear clc;
    [a,b,q,r]= test(10)%%%%%%%%%%%%%%%%%%调用test函数n=10,a,b,q,r四个为n=10的test函数的返回值!



    展开全文
  • SQL server 自定义函数FUNCTION的使用

    万次阅读 多人点赞 2018-08-16 15:33:25
     在SQL server中不仅可以可以使用系统自带的函数(时间函数、聚合函数、字符串函数等等),还可以根据需要自定义函数。 一、定义: 用户自定义函数的类型: 1、标量值函数(返回一个标量值) 2、表格值函数...

    前言:

            在SQL server中不仅可以可以使用系统自带的函数(时间函数、聚合函数、字符串函数等等),还可以根据需要自定义函数。

    一、定义:

    用户自定义函数的类型:

    1、标量值函数(返回一个标量值)

    2、表格值函数(内联表格值函数、多语句表值函数,返回一个结果集即返回多个值)

    二、三种自定函数的异同点

    1、同点:

    创建定义相同:         CREATE FUNCTION F_NAME(传入的参数名称    传入参数的类型)                                
                                      RETURNS         返回值类型                                 
                                      AS 

    2、异点:

                  a.标量值函数返回的是一个数据类型值,
                     内联表值函数返回的是一个table,而多语句表值函数返回的是一个table的变量(类似前面两个的结合);  
                  b.语法的结构:标量值函数和多语句表值函数都是要有begin.........................end,内联表值函数就没有;      
                  c.调用:标量函数要写成在dbo.function_name;

    三、函数参数

    参数可以是常量、表中的某个列、表达式或其他类型的值。在函数中有三种类型的参数。

    1、输入:指必须输入一个值。

    2、可选值:在执行该参数时,可以选择不输入参数。

    3、默认值:函数中默认有值存在,调用时可以不指定该值。

    四、举例说明:

    1、标量值函数定义格式:

    CREATE FUNCTION function_name(@parameter_name parameter_data_type) 
    --CREATE FUNCTION 函数名称(@参数名 参数的数据类型)
    RETURNS date_type   --返回返回值的数据类型
    [WITH ENCRYPTION]  --如果指定了 encryption 则函数被加密
    [AS]
    BEGIN
      function_body --函数体(即 Transact-SQL 语句)
      RETURN  表达式;
    END

    拿个具体的例子说事:

    准备数据:之前有一篇博文写了新建表和插入数据的语句,可参考:

    https://mp.csdn.net/postedit/81702708

    想要输入时间得到名字的函数

    CREATE FUNCTION dbo.func_date_get_name(@date_into varchar(8)) 
    --CREATE FUNCTION 函数名称(@参数名 参数的数据类型)
    RETURNS varchar(20)   --返回返回值的数据类型
    --[WITH ENCRYPTION]  --如果指定了 encryption 则函数被加密
    as
    BEGIN
    	declare @result_name varchar(20)
    	select  @result_name = Value_name from test_ceshi where statdate = @date_into   
      RETURN  @result_name
    END
    
    --select dbo.func_date_get_name('20180808') name;
    --select * from test_ceshi;

    测试这个自定义函数:func_date_get_name ,即可得到name的结果为:Test1

     

    以下是test_ceshi表的全量数据。

      

    例子二:这个函数使用了if...else条件语句

    --编写一个函数,该函数,可以通过输入借书时间来判断是否到期,当借阅时间大于30天,返回已经过期;否则返回还未到期。
    
    CREATE FUNCTION IsDateout(@BDate datetime)
    returns nvarchar(20)
    AS
    BEGIN
        DECLARE @myresult nvarchar(20)
        IF (datediff(day,@BDate,getdate())>30)
        BEGIN
        SET @myresult='已过期'
        end
        else    
        begin
        set @myresult='未到期'
        end
        RETURN (@myresult)
    END
    
    SELECT dbo.IsDateout(cast('2018-01-01' AS datetime))--结果已过期
    SELECT dbo.IsDateout(cast('2018-08-01' AS datetime))--结果未到期

    2、内联表格值函数定义格式:

    特点:内联表格值函数支持在WHERE子句中使用参数

    CREATE FUNCTION function_name(@parameter_name parameter_data_type) 
    --CREATE FUNCTION 函数名称(@参数名 参数的数据类型)
    RETURNS table    --返回一个表
    [WITH ENCRYPTION]  --如果指定了 encryption 则函数被加密
    [AS]
    RETURN   (一条SQL语句)

    有了格式,写个实例:

    CREATE FUNCTION dbo.func_date_get_table(@date_into varchar(8)) 
    
    RETURNS table
    --[WITH ENCRYPTION]  --如果指定了 encryption 则函数被加密
    as
      RETURN  select  statdate,Value_name from test_ceshi where statdate = @date_into
    
    --select * from dbo.func_date_get_table('20180808') ;

    得到如下的结果:

    3、多语句表值函数定义格式:

           多语句表值函数跟内联表值函数都是表值函数,它们返回的结果都是Table类型。多语句表值函数通过多条语句来创建Table类型的数据。这里不同于内联表值函数,内联表值函数的返回结果是由函数体内的SELECT语句来决定。而多语句表值函数,则是需要指定具体的Table类型的结构。也就是说返回的Table已经定义好要哪些字段返回。所以它能够支持多条语句的执行来创建Table数据。

    CREATE FUNCTION function_name(@parameter_name parameter_data_type) 
    --CREATE FUNCTION 函数名称(@参数名 参数的数据类型)
    RETURNS @Table_Variable_Name table (Column_1 culumn_type,Column_2 culumn_type)    
    --RETURNS @表变量 table 表的定义(即列的定义和约束)
    [WITH ENCRYPTION]  --如果指定了 encryption 则函数被加密
    [AS]
    BEGIN
         函数体(即 Transact-SQL 语句)
     RETURN  
    END

    因为此类型的自定义函数在实际工作中使用最多,我多举几个例子说明,有些是别人写的内容:

    例子1:

    CREATE FUNCTION dbo.func_date_get_table_test(@date_into varchar(8)) 
    RETURNS @table_test table(date varchar(8),ID varchar(20),name varchar(20))
    --[WITH ENCRYPTION]  --如果指定了 encryption 则函数被加密
    as
    begin
      insert @table_test select  statdate,value_id,Value_name from test_ceshi where statdate = @date_into
       RETURN 
    end
    
    --select * from dbo.func_date_get_table_test(20180808);
    

    测试函数dbo.func_date_get_table_test(),结果如下图:

    例子2:出处--海盗船长  https://www.cnblogs.com/baidawei/p/4732969.html

    create function dbo.Test()
    returns @temp table (
        name varchar(20),
        sex char(2),
        age int
    )
    as
    begin
    insert into @temp (name,sex,age) values ('多语句','嘛',18)
    insert into @temp (name,sex,age) select name,sex,age from student where age > 18
    return 
    end

    五、修改和删除自定义函数

    1、使用alter语句修改自定义函数:

    --格式:
    alter function 函数名(参数)
    returns table
    as
    return(一条SQL语句)

    2、使用drop语句删除:

    drop function func_date_get_name

    六、注意事项:

    在编写自定义函数时需要注意的:

    标量函数:

    1.      所有的入参前都必须加@

    2.      create后的返回,单词是returns,而不是return

    3.      returns后面的跟的不是变量,而是返回值的类型,如:int,char等。

    4.      在begin/end语句块中,是return。

    内联表格值函数:

    1.      只能返回table,所以returns后面一定是TABLE

    2.      AS后没有begin/end,只有一个return语句来返回特定的记录。

    多语句表值函数:

    1.      returns后面直接定义返回的表类型,首先是定义表名,表明前面要加@,然后是关键字TABLE,最后是表的结构。

    2.      在begin/end语句块中,直接将需要返回的结果insert到returns定义的表中就可以了,在最后return时,会将结果返回。

    3.      最后只需要return,return后面不跟任何变量。

     

     

    展开全文
  • Oracle 函数function之返回结果集

    万次阅读 2017-08-15 13:25:53
    工作中常需要经过一段复杂逻辑...我一般采用建立函数function的方式来处理。 --创建包,声明function和type CREATE OR REPLACE PACKAGE PAK_TEM AS TYPE DATE_RECORD IS RECORD --自定义类型-行(含字段及类型)

    可以按照最后的写。

    工作中常需要经过一段复杂逻辑处理后,得出的一个结果集。并能够将这个结果集作为一个表看待,去进行关联查询

    我一般采用建立函数function的方式来处理。

    复制代码
    --创建包,声明function和type
    CREATE OR REPLACE PACKAGE PAK_TEM
    AS
       TYPE DATE_RECORD IS RECORD --自定义类型-行(含字段及类型)
       (
          NAME    VARCHAR2 (20),
          VALUE   VARCHAR2 (20)
       );
    
       TYPE DATE_TABLE IS TABLE OF DATE_RECORD; --自定义table类
    
       FUNCTION GET_TERM_YEARS
          RETURN DATE_TABLE  --返回table类型
          PIPELINED; --流水式
    END PAK_TEM;
    /
    
    
    --实现包体中的function
    CREATE OR REPLACE PACKAGE BODY PAK_TEM
    AS
       FUNCTION GET_TERM_YEARS
          RETURN DATE_TABLE
          PIPELINED
       IS
          L_RESULT   DATE_RECORD;
       BEGIN
          FOR REC IN (SELECT DISTINCT TO_CHAR (STATUS_TIME, 'YYYY')
                        FROM TEM_TB
                       WHERE TO_CHAR (STATUS_TIME, 'YYYY') != '0001')
          LOOP
             L_RESULT.NAME := REC.YEAR || '';
             L_RESULT.VALUE := REC.YEAR;
             PIPE ROW (L_RESULT); --依次返回行
          END LOOP;
       END;
    END PAK_TEM;
    /
    复制代码

    像查询一个表一样来操作function,使用 TABLE(自定义函数)

    SELECT * FROM  TABLE(PAK_TEM.get_term_years());

     


     

    PS:以下是定义oracle的table类型示例:

    复制代码
    --oracle内置类型
    TYPE STRING_TABLE IS TABLE OF VARCHAR(2000);
    
    --自定义类型(DATE_RECORD)
    TYPE DATE_RECORD IS RECORD --自定义类型-行(含字段及类型)
    (
    NAME VARCHAR2 (20),
    VALUE VARCHAR2 (20)
    );
    TYPE DATE_TABLE IS TABLE OF DATE_RECORD; --自定义table类(DATE_TABLE)
    复制代码

    自己写的例子:

    按照以上例子写的,package:

    create or replace package datasTest
     as
     TYPE DATE_RECORD IS RECORD
     (
           EMPNO    number,
          ENAME   VARCHAR2 (64)
     );
     type DATA_TABLE is table of DATE_RECORD;
      -- Author  : CCDSEW
      -- Created : 2017/8/15 9:56:28
      -- Purpose : 
      -- Public function and procedure declarations
      function getDates(P_empno NUMBER) return DATA_TABLE PIPELINED;
    
    end datasTest;
    

    package body:

    create or replace package body datasTest
    as
    /* TYPE DATE_RECORD IS RECORD
     (
           EMPNO    number,
          ENAME   VARCHAR2 (64)
     );*/
    /* type DATA_TABLE is table of DATE_RECORD;*/
      -- Function and procedure implementations
      function getDates(P_EMPNO NUMBER) return DATA_TABLE  PIPELINED is
        L_RESULT DATE_RECORD;
      begin
       FOR DATA IN (SELECT E.EMPNO,E.ENAME FROM EMP E where E.EMPNO = P_EMPNO) LOOP
          L_RESULT.EMPNO := DATA.EMPNO;
          L_RESULT.ENAME := DATA.ENAME;
          PIPE ROW(L_RESULT);
       END LOOP;
      end getDates;
    end datasTest;
    

    测试:

    select datasTest.getDates(7369) from dual;

    也可以这样写(比较适合oracle):

    package:

    create or replace package DATATEST001 is
    
      -- Author  : CCDSEW
      -- Created : 2017/8/15 13:26:38
      -- Purpose : test
      
      -- Public type declarations
      TYPE DATE_RECORD IS RECORD
     (
          EMPNO    number,
          ENAME   VARCHAR2 (64)
     );
    
      type DATA_TABLE is table of DATE_RECORD;
    
      -- Public function and procedure declarations
      function getDates(P_empno NUMBER) return DATA_TABLE PIPELINED; 
    
    end DATATEST001;

    package body:

    create or replace package body DATATEST001 is
    
       function getDates(P_EMPNO NUMBER) return DATA_TABLE  PIPELINED is
        L_RESULT DATE_RECORD;
      begin
       FOR DATA IN (SELECT E.EMPNO,E.ENAME FROM EMP E where E.EMPNO = P_EMPNO) LOOP
          L_RESULT.EMPNO := DATA.EMPNO;
          L_RESULT.ENAME := DATA.ENAME;
          PIPE ROW(L_RESULT);
       END LOOP;
      end getDates;
    end DATATEST001;
    

    测试和之前一样。



    展开全文
  • SQL自定义函数function

    万次阅读 2016-11-15 14:37:15
    用户定义自定义函数像内置函数一样返回标量值,也可以将结果集用表格变量返回。 sql函数必须有返回值。标量函数:返回一个标量值。 表格值函数{内联表格值函数、多表格值函数}:返回行集(即返回多个值)1、标量...

    用户定义自定义函数像内置函数一样返回标量值,也可以将结果集用表格变量返回
    sql函数必须有返回值。

    ps:
    函数看成一个处理某些数据的功能,因有返回值,则在代码使用中,需要一个处理过的数据。
    可直接调用函数处理数据,返回数据给代码使用。

    标量函数:返回一个标量值。
    表格值函数{内联表格值函数、多表格值函数}:返回行集(即返回多个值)

    标量函数和表格值函数的区别在于 返回是标量值(单个数字或者单个数据),还是表格值(多个数据)

    1、标量函数

    create funetion 函数名(参数)
    return 返回值数据类型
    [with {Encryption | Schemabinding }]
    [as]
    begin
    SQL语句(必须有return 变量或值)
    End

    Schemabinding :将函数绑定到它引用的对象上(注:函数一旦绑定,则不能删除、修改,除非删除绑定)

    例子:

    create funetion SumRes(@sco nvarchar(20))
    returns real //返回值类型
    as
    begin
    
    declare @sum real //变量
    declare @code varchar(11) //变量
    
    set @code = @sco + '%' //赋值
    select @sum = sum(result) from LearnResult where scode like @code //查询结果赋值
    
    return @sum 
    end

    引用自定义函数

    select 用户名.函数名 as 字段别名
    select dbo.AvgResult('sooo2') as result 

    用户自定义函数返回值可放在局部变量中,用set select exec 赋值

    declare @sum1 real,@sum2 real,@sum3 real
    set @sum1 = dbo.SumRes('sooo2')
    select @sum2 = dbo.SumRes('sooo2')
    exec @sum3 = dbo.SumRes'sooo2'
    select @sum1,@sum2.@sum3

    2、表格值函数

    a、内联表格值函数
    格式:
    create function 函数名(参数)
    returns table
    [with{ Encryption | Schemabinding }]
    as
    return(一条SQL语句)

    例子:

    create function tabcmess(@code nvarchar(50))
    returns table
    as
    return(select id name from tableName)

    b、多句表格值函数

    多表格值函数的定义:包含多条SQL语句,必须或者至少有一条给表格变量赋值!!!

    表格变量格式:
    returns @变量名(dt) table( 列定义 | 约束定义 )

    对表格变量中可以执行 select, insert, update, delete,
    但select into 和 insert 语句的结果集是从存储过程插入。

    格式:
    create function 函数名(参数)
    return @dt table(列的定义)
    [with{Encryption | Schemabinding}]
    as
    begin
    SQL语句
    end

    例子:

    create function tabcmess(@code nvarchar(50))
    returns @dt table(id @nvarchar(20),name @nvarchar(50))
    as
    
    begin
    //添加表格变量数据
    insert into @dt select id name from tablename where name like @code
    
    return
    
    end

    表格值函数的引用
    select * from tabcmess(‘qoooo3’)

    演示SQL函数编程简单的使用例子:
    创建表:

    create Table DepCompany
    (
        ID int,
        panytemID nvarchar(20), --公司等级
        panyartmentID nvarchar(20), --部门级别
        panyName nvarchar(50), --部门名称
        panyTurnover bigint  --部门营业额
    )
    
    /*
    公司分为总公司(代号1) -> 分公司(代号2) -> 支公司(代号3)
    部门等级 -> 按照公司等级"牵引"部门所属是哪个等级的公司(例如:"支公司3"旗下有 "龙湖部门3""金平部门3""达豪部门3")
    */
    
    insert into DepCompany(ID,panytemID,panyartmentID,panyName,panyTurnover) 
    values (1,'1','1','部门一部',10000000),
           (2,'1','1','部门二部',10000000),
           (3,'1','1','部门三部',100000),
           (4,'1','1','部门四部',10000000),
           (5,'1','1','部门五部',100000),
           (6,'1','1','部门六部',100000),
           (7,'2','2','部门一部',10000000),
           (8,'2','2','部门二部',100000),
           (9,'2','2','部门三部',10000000),
           (10,'1','1','部门七部',100000),
           (11,'1','1','部门八部',100000),
           (12,'1','1','部门九部',100000),
           (13,'3','3','部门一部',10000000),
           (14,'3','3','部门二部',100000),
           (15,'3','3','部门三部',100000),
           (16,'3','3','部门四部',10000000),
           (17,'2','2','部门四部',100000),
           (18,'2','2','部门五部',10000000),
           (19,'2','2','部门六部',100000),
           (20,'1','1','部门十部',10000000),
           (21,'2','2','部门七部',100000)

    创建函数

    create function Company2(@ID nvarchar(10))
    returns @dt table(ID int, PanytemID nvarchar(10),PanyartmentID nvarchar(10),PanyName nvarchar(50),panyTurnover int)
    as
    begin
    
     insert into @dt select ID,panytemID,panyartmentID,panyName,panyTurnover from DepCompany where panytemID = @ID
    
    return
    end

    引用/使用函数

    select * from dbo.Company2('2')
    展开全文
  • Matlab S函数 function sys=mdlDerivatives(t,x,u)

    千次阅读 热门讨论 2020-03-03 23:23:41
    Matlab S函数 function sys=mdlDerivatives(t,x,u) 设函数为 h’’ = 1/J*(ut+dt) 1 s函数里 的x状态含义: x(0.5 0) 状态1: x(1) ————状态值h 状态2: x(2) ————状态值的导数(或称速度)h’ 2 function sys...
  • js 函数function用法

    万次阅读 2012-11-18 13:15:21
    javascript 函数不同于其他的语言,每个函数都是...在继续讲述之前,先看一下函数的使用语法:以下是引用片段:function func1(…){…} var func2=function(…){…}; var func3=function func4(…){…}; var func
  • R中的自定义函数function

    万次阅读 2017-07-11 22:15:39
    通过定义函数,实现了summary函数的加强版功能! 更多自编函数,参见Erin的自编函数整理,直接调用帮助你的数据分析工作事半功倍哦!
  • 1.MySQL自定义函数简介 在MySQL中使用自定义函数也需要相应的要求,语法如下, 创建新函数: Create function function_name(参数列表) returns返回值类型 函数体内容 相关说明,函数名:应该合法的标识符,...
  • 关于simulink中的函数function模块

    千次阅读 2019-12-12 11:43:56
    我们前面提到过当遇到库中没有我们需要的模块时,我们可以自己书写s函数,其实s函数是一个比较高端的工具,是用来书写一些比较复杂的模块,而遇到一些简单的模块,我们可以用库里面的fcn模块和matlab function模块 ...
  • shell 中函数function()

    千次阅读 2017-07-20 21:26:34
    Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell...关键字function表示定义一个函数,可以省略,其后是函数名,有时函数名后可以跟一个括号
  • 因为之前学过Java,在学习JS时,对JS的数据类型、... 知识点会涉及到:JS数据类型、JS的类型判断方式、函数创建方式、functionFunction的区别、匿名函数的使用、函数特点以及函数重载问题。 Javascript数据类型
  • Oracle 自定义函数Function

    千次阅读 2014-12-31 20:56:52
    转换大写金额,相信有不少人用过,网上例子也有不少,这次在项目运用到,做下记录,方便查找,以备不时之需。首先在Oracle自定义一个function
  • Linux shell脚本之函数 Function 详解

    千次阅读 2019-07-16 23:57:50
    Linux shell脚本函数详解 函数递归 函数示例
  • PostgreSQL函数也称为PostgreSQL存储过程。 PostgreSQL函数或存储过程是存储在数据库服务器上并可以使用SQL界面...要在 PostgreSQL 定义一个新的用户自定义函数,需要使用CREATE FUNCTION语句,如下所示: CREAT...
  • js中的函数function

    千次阅读 2014-08-22 07:53:02
    js的function对象在调用过程中具有一个arguments的属性,它是由脚本解释器创建的(这也是arguments创建的唯一方式)。arguments属性可以看作是一个Array对象,它有length属性,可以通过序号访问每一个参数,而且通过...
  • 总结了Fortran中函数的使用方法。
  • ES6---es6中函数function的改革

    万次阅读 2017-03-28 22:30:54
    ●箭头函数:function add(x,y){return x+y}; ///这是es5中定义函数的写法,es6中我们可以这么搞: var add=(x,y)=>x+y; add(1,2);//3,正常运行var fun1=x=>x+1; fun1(3);//4,当参数为1个的时候 可以再简单一点,当然
  • function函数的应用 ,涉及到的知识点有随机汉字制作、函数运用。function 函数命令 function 命令声明的代码区块,就是一个函数function 命令后面 是函数名,函数名后面是一对圆括号,里面是传入函数的参数。函 ...
  • 在项目中看到这种写法,去手册看了一下实例,开始看的有些晕。 以下是PHP示例代码: <?php $message = 'hello'; // 没有 "...$example = function () { ...$example = function () use (...
  • 函数的重复声明 圆括号运算符,return 语句和递归 第一等公民 函数名的提升 函数的属性和方法 name 属性 length 属性 toString() 函数作用域 定义 函数内部的变量提升 函数本身的作用域 参数 概述 参数的省略 ...
  • 今天在编写页面代码的时候,设计到弹窗和主页面方法之间的相互调用,发现要调用一个页面的方法时,只要获取到要调用页面的window对象即可直接调用该页面的方法,比如A页面要调用B页面的方法BB(),然后获取到B页面的...
  • 存储过程与函数的区别 本质上没区别,执行的本质都一样。  只是函数有如:只能返回一个变量的限制。而存储过程可以返回多个。   函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程要让sql的query ...
  • php的闭包函数 function()use(){}

    千次阅读 2018-01-12 09:47:52
    介绍定义:将匿名函数在普通函数中当做参数传入,也可以被返回。这就实现了一个简单的闭包。use是为了连接闭包和外界变量(也就是为了可以引用函数外的变量,因为匿名函数不可以使用函数外的变量) php的闭包(Closure...
  • 事件函数function(e){}中e的问题

    万次阅读 2017-09-26 17:09:17
    简单来说就是指向了当前发生的事件(click、mouseover等等),保存了当前事件的信息。... 其中,e是标准浏览器传递进去的事件参数,低版本IE不会传递,事件参数放置在window.event对象中,所以兼容低版本的...function f

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,099,033
精华内容 839,613
关键字:

函数function