zoukankan      html  css  js  c++  java
  • SQL语句创建函数

    ----先create,再alter

    alter function fuc (@userid int,@strWhere varchar(max),@strWhere2 varchar(max) )  returns decimal(18,2 )
    as
    begin
    declare @useridlist varchar(max)='',@res decimal(18,2)=0;
    with cte as
    (
        select ID,1 Layer from t_user  where ID=64
        union all
        select a.ID,Layer=Layer+1 from cte inner join t_user a on a.UPLineID=cte.ID  and cte.Layer<=4
    )select @useridlist+=@useridlist+','+cast(ID as varchar(10)) from cte   where  cte.Layer<=3
     
    declare @UserGradeDateLine varchar(max)='';
     select @UserGradeDateLine=UserGradeDateLine4 from t_user  where ID=64
        if(@UserGradeDateLine!='' and datediff(d,@UserGradeDateLine,@strWhere)>0 and datediff(d,@UserGradeDateLine,@strWhere2)>=0)
        begin
        select @res=isnull(sum(amount),0) from t_orderlucre  where CHARINDEX(','+CAST(UserID2 as varchar(10))+',',@useridlist+',')>0  and GroupSign =3  and ( datediff(mi,@UserGradeDateLine,AddTime)>0  and    datediff(d,AddTime,@strWhere2)>=0)   
        end   
        else
         begin
         select @res=isnull(sum(amount),0) from t_orderlucre  where CHARINDEX(','+CAST(UserID2 as varchar(10))+',',@useridlist+',')>0  and GroupSign =3  and ( datediff(d,@strWhere,AddTime)>0  and    datediff(d,AddTime,@strWhere2)>=0)     
         end
    return @res;
    end

    --执行查询
     
      with cte as(select row_number() over(order by Amount DESC) RowID,*  from  ( select ID ,Phone ,dbo.fuc

    (ID,'2018-03-28','2018-04-28') Amount from t_user)t where  1=1 )select * from cte where RowID>0 and

    RowID<=15

  • 相关阅读:
    深入理解sizeof
    trie树详解
    高精度计算
    编写高效的Android代码
    Android Architecture
    AIDL Android中的远程接口
    性能测试常见术语
    软件与软件测试相关
    注解实现Springmvc+jsp步骤
    非注解实现SpringMvc+JSP (一般用不到 主要用于了解研究底层)
  • 原文地址:https://www.cnblogs.com/weimingxin/p/8900499.html
Copyright © 2011-2022 走看看