zoukankan      html  css  js  c++  java
  • sql server 自定义函数

    自定义函数

    如果RETURNS 子句指定一种标量数据类型,则函数为标量值函数

    如果RETURNS 子句指定 TABLE,则函数为表值函数

    如果RETURNS 子句指定的TABLE 不附带列,则该函数为内嵌表值函数

    如果RETURNS 子句指定的TABLE 类型带有列及其数据类型,则该函数是多语句表值函数

    标量值函数

    返回的结果只是一个标量,返回的结果就是一种类型的一个值

    调用方法(select SUMRESULT(6443) as result)

    --标量值函数(CREATE function 函数名(@参数名 类型))
    CREATE function SUMRESULT(@USER_ID VARCHAR(250))
    --返回值数据类型(Returns 返回值数据类型)
    Returns varchar(250)
    AS
    Begin
    --声明变量或返回值 Declare @ret varchar(250) --给变量赋值 set @ret='' --给变量赋值 select @ret=SUM(HOLIDAYS) FROM JKZX_NXJ WHERE USER_ID=@USER_ID--参数 --返回值数据 return @ret End
    --标量值函数  
    create function GetSum  (@num1 int , @num2 int )
    Returns
    int as begin declare @return int set @return = @num1 + @num2 return @return end select dbo.GetSum(1,3)

    内联表值函数

    内联表值函数返回的是表数据,它返回的是一个表内表值型函数没有由BEGIN-END语句括起来的函数体

    调用方法(SELECT * FROM DSOA.CATABLR(6443))

    --表值函数(CREATE function 函数名(@参数名 类型))
    CREATE function CATABLR(@User_id varchar(250))
    --返回表数据类型
    Returns TABLE
    
    AS
    --返回查询的表数据
    Return(
    --SELECT 语句
    SELECT [ID],[YEAR],[CREATEDATE],[USER_ID],[DEPT] FROM JKZX_NXJ WHERE USER_ID=@USER_ID
    )
    
    GO

    多语句表值函数

    多语句表值函数跟内联表值函数都是表值函数,它们返回的结果都是Table类型

    多语句表值函数顾名思义,就是可以通过多条语句来创建Table类型的数据。

    这里不同于内联表值函数,内联表值函数的返回结果是由函数体内的SELECT语句来决定。

    而多语句表值函数,则是需要指定具体的Table类型的结构。也就是说返回的Table,已经定义好要哪些字段返回。所以它能够支持多条语句的执行来创建Table数据。

    ....

    sql代码 还未涉及到略

  • 相关阅读:
    svn使用教程
    事务的隔离级别--全网最详细
    idea的java类图标C不见,取而代之是J标识,且写代码无提示
    text .global_start 和_start
    transformClassesWithDexForDebug
    RxJava基本流程和lift源码分析
    Rxlifecycle(三):坑
    Rxlifecycle(二):源码解析
    RxJava操作符之Share, Publish, Refcount
    Rxlifecycle(一):使用
  • 原文地址:https://www.cnblogs.com/fjptwwf/p/6278043.html
Copyright © 2011-2022 走看看