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


    通俗来讲:

    听名字就知道区别了 
    表值函数返回的是一张表结果,就和一个select查询语句一样,只不过里面带入了参数或者很复杂;
    标量值函数返回的只是一个值

    一 、表值函数又分为内联函数与多语句函数

    (1)内联函数就是没有函数主体表是单个 SELECT。

    下面是一个不带输入参数的表值函数

    create function tvpoints()
    returns table
    as 
    return
    (
    select * from tb_users
    );

    调用-这个结果返回的是一张表:

    select * from tvpoints()

    (2)下面是带参的内联表值函数

    对于多语句表值函数,在 BEGIN...END 语句块中定义的函数体包含一系列 Transact-SQL 语句,这些语句可生成行并将其插入将返回的表中。
    以下示例创建了一个表值函数.

    create function tvpoints()
    returns @points table (x float, y float)
    as begin
    insert @points values(1,2);
    insert @points values(3,4);
    return;
    end

    调用-查询到的是一张表

    select * from tvpoints()

    (3)标量函数(返回一个具体类型的值而不是一张表了)

    CREATE FUNCTION FUN_DataFormat (@strDate datetime)  
    RETURNS varchar(20)  AS  
    BEGIN 
        
        declare @date varchar(20)
          set @date = DATENAME(YY,@strDate)+''+Convert(VARCHAR,MONTH(@strDate))+''+Convert(VARCHAR,DAY(@strDate))+''
        return @date
    END

    可以通过select dbo.FUN_DataFormat(getdate())来使用。(用的时候一定要在函数前面添加一个dbo或者的话数据库语句报错的会提示不认识的)

  • 相关阅读:
    django model:auto_now_add 和 auto_now
    算法(2):数据结构
    Flask(2):登陆验证
    Flask(1):基本示例、配置文件、路由、请求和响应、模板渲染
    linux基础
    算法(1):查找&排序
    利用dispatch_once创建单例
    UIScrollView的属性总结
    ios开发 UITableViewController
    [深入浅出Cocoa]详解键值观察(KVO)及其实现机理
  • 原文地址:https://www.cnblogs.com/superfeeling/p/11723307.html
Copyright © 2020-2023  润新知