• SQL函数


    /*
    1标量值函数,简单点来讲就是返回的结果只是一个标量,对于我来讲,返回的结果就是一种类型的一个值。
    2内联表值函数 ,内联表值函数返回的是表数据。当然罗,表数据就是Table类型。内联表函数返回的表结构由函数体内的SELECT语句来决定。
    3多语句表值函数,多语句表值函数跟内联表值函数都是表值函数,它们返回的结果都是Table类型。多语句表值函数顾名思义,就是可以通过多条语句来创建Table类型的数据。这里不同于内联表值函数,内联表值函数的返回结果是由函数体内的SELECT语句来决定。而多语句表值函数,则是需要指定具体的Table类型的结构。也就是说返回的Table,已经定义好要哪些字段返回。所以它能够支持多条语句的执行来创建Table数据。
    
    自定义函数注意:
    1 可以返回表变量
    2不能使用output参数;不能用临时表;函数内部的操作不能影响到外部环境;不能通过select返回结果集;不能update,delete,数据库表;
    3必须return 一个标量值或表变量
    */
    
    create function [ schema_name. ] function_name 
    ( [ { @parameter_name [ as ][ type_schema_name. ] parameter_data_type 
        [ = default ] [ readonly ] } 
        [ ,...n ]
      ]
    )
    returns return_data_type
        [ with <function_option> [ ,...n ] ]
        [ as ]
        begin 
                    function_body 
            return scalar_expression
        end
    [ ; ]
    
    
    
    --新建标量值函数 
    create function biaoliangfun( @va1 int=1,@va2 int)
    returns int
    as
    begin
        declare @result int=1
        return @result
    end
    
      
    --新建内联表值函数 
    create function biaozhifun( @va1 int)
    returns table 
    as
    return 
    (
        select id,name from people where age = @va1
    )
    
    
    --新建多语句表值函数 
    create function duobiaofun( @va1 int)
    returns @result table (id int,name nvarchar(20))
    as
    begin
        insert into @result(id,name) values(100,'china')
        return 
    end
    
    
    --删除标量值函数 
    drop function biaoliangfun
      
    --调用表值函数 
    select * from biaozhifun(10) 
    
    --调用标量值函数 
    declare @zhi int
    set @zhi=biaoliangfun(10) 
      
  • 相关阅读:
    看完这篇文章,你还会问陈景润证明“1+2”有什么意义吗?
    stm32串口发送数据复位 第一个数据丢失
    无理数的由来
    定义一个大数组时,出现错误,程序进入HardFault_Handler中断
    STM32使用FatFs
    块级元素IE6/IE7下inline-block解决方案
    Building Your First jQuery Plugin
    ub挂载window磁盘
    PE文件结构部分解析以及输入的定位
    私有云建设之超融合技术
  • 原文地址:https://www.cnblogs.com/tlmbem/p/10693372.html
Copyright © 2020-2023  润新知