zoukankan      html  css  js  c++  java
  • SQL SERVER 标量函数

    标量函数的定义

    SQL Server标量函数接受一个或多个参数并返回单个值。

    标量函数可帮助简化代码。 例如,可能有许多查询中出现的复杂计算。可以创建一个标量函数来封装公式并在查询中使用它,而不是在每个查询中包含公式。

    平时使用的场景

    在一个功能中,根据业务去写存储过程中的算法。存储过程的调用时会出现,返回值不明确的情况。

    为避免此情况,可使用统一的标量函数值,将返回值进行编程规范

    如:抽奖活动,返回值为-1为已抽奖,或者返回值为-1为不满足条件

    标量函数的使用

    创建

    USE [XXXDB]
    GO
    /****** Object:  UserDefinedFunction [dbo].[ReturnState_OtherStatus]    Script Date: 2021/1/19 9:41:24 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:		<lwz>
    -- Create date: <Create Date, ,>
    -- Description:	<返回结果的其他状态,超过次数等>
    -- =============================================
    CREATE FUNCTION [dbo].[ReturnState_OtherStatus]
    (
    
    )
    RETURNS SMALLINT
    AS
    BEGIN
    	
    	RETURN -1;
    
    END
    

    存储过程调用

    USE [OldSoldierComeBackDB]
    GO
    /****** Object:  StoredProcedure [dbo].[IsReceiveComeBackPacket]    Script Date: 2021/1/19 9:45:55 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:		zhuchunfeng
    -- Create date: 2016-06-21
    -- Description: 是老玩家 检查有没有领取过老玩家礼包    
    -- =============================================
    ALTER PROCEDURE [dbo].[IsReceiveComeBackPacket]
        @AvatarID BIGINT ,
        @GameArea INT
    AS
        BEGIN
            SET NOCOUNT ON;
            -- Type 1 2 3 
            -- 有没有领取过
            IF EXISTS ( SELECT  1
                        FROM    dbo.XXXDB
                        WHERE   AvatarID = @AvatarID
                                AND GameArea = @GameArea 
                                AND Type=0 )
                RETURN dbo.ReturnState_OtherStatus();
    
            RETURN dbo.ReturnState_Succeed();
            SET NOCOUNT OFF;
        END
    
    

    参考链接

    SQL Server标量函数

    SQLServer之创建标量函数

  • 相关阅读:
    Lily.Core.FileDataProvider文件管理使用范例。
    CruiseControl.NET,Nant持续集成(1)
    如何为当前进程设置环境变量?
    unix时间戳与datetime的转换函数
    Mac 平台下功能强大的Shimo软件使用指南
    如何解决源码包安装时的依赖性问题
    《Linux企业应用案例精解》一书配套视频发布
    ZoneMinder配置与使用
    网站优化IIS7下静态文件的优化
    WIN7常用功能的介绍
  • 原文地址:https://www.cnblogs.com/WenzhengLi/p/14296423.html
Copyright © 2011-2022 走看看