• SQL函数


    
    

    --------创建内链表值函数(即:单语句)
    ALTER function [dbo].[getUserByUserName]
    (
    @username varchar(20)
    )
    returns table --固定写法
    as
    return
    (
    --这里只能是一条查询语句
    --select * from t_money where username=@username
    select C.userid,C.username,(C.addmoney+C.money)as addmoney
    from (select a.userid,a.username,a.[money],b.addmoney from t_money a,t_addmoney b
    where a.userid=b.userid)C where username=@username
    )

    
    

    go
    --调用:
    select * from getUserByUserName('judy')

    
    

    go

    
    
    
    
    

    --------创建多语句表值函数
    CREATE FUNCTION GetMangOfAddAfter
    (
    -- 参数声明
    @AddMoney int
    )
    RETURNS

    
    

    --声明一个table类型的表:@ReturnTable
    @ReturnTable TABLE
    (
    --给@ReturnTable表指定都有哪些列
    userid varchar(20),
    username varchar(30),
    [money] int
    )
    AS
    BEGIN
    -- 编写
    insert into @ReturnTable (userid,username,[money])
    select * from t_money
    update @ReturnTable set [money]=[money]+@AddMoney

    RETURN --固定写法
    END

    
    

    GO
    --调用:
    select * from GetMangOfAddAfter(100)
    go

    
    
    
    
    

    ------新建标量值函数
    CREATE FUNCTION dbo.getStrByName
    (
    -- 参数
    @id int
    )
    RETURNS varchar(20)
    AS
    BEGIN
    -- 声明变量
    DECLARE @RetStr varchar(20),
    @count int,@iNow int=0

    
    

    -- 编写
    select @count=count(*) from dbo.test where id=1
    print @count
    if(@count=0)
    begin
    set @RetStr=''
    end
    else
    begin
    while(@count>0)
    begin
    if(@iNow=0)
    begin
    select @RetStr=name from test
    end
    else
    begin
    set @RetStr=@RetStr+','
    select @RetStr=name from test
    end
    end

    set @iNow=@iNow+1
    set @count=@count-1
    end
    -- 返回
    RETURN @RetStr

    
    

    END
    GO

    --调用:

    select dbo.getStrByName(1)

     
  • 相关阅读:
    全国各地DNS(电信,移动,联通,教育网)
    全国各地电信DNS服务器地址
    免费公共 DNS 大全
    免费公共DNS服务器 全球DNS服务器 国内DNS服务器
    AT指令发送短信
    OpenWrt 定期检测进程是否存在并重启
    OpenWrt 计划任务使用方法
    openwrt-mt7688 修改默认的WIFI SSID
    在MT7628实现wan、wwan与4G动态切换
    Unix常用命令之修改密码
  • 原文地址:https://www.cnblogs.com/zcttxs/p/3061459.html
Copyright © 2020-2023  润新知