zoukankan      html  css  js  c++  java
  • sql if else 写法,和 多个case when用法

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    GO
    /*
    * create by huang qing
    * modify by chaoxueling
    * modify date 2013-05-15
    */
    ALTER PROCEDURE [dbo].[sp_GetPropsTop_ByPropsCount]
     @PageIndex  int,
     @PageSize  int,
     @OrderType  int
    AS
    BEGIN

    if(@OrderType=1)
    begin
    with Mem_TbUserPropsTop as
     (
      select A.*,b.PropsCountB,ROW_NUMBER() over (order by PropsCountA desc) as rowNumber from (
      select  QdUserId,PropsId,propscnt as PropsCountA from tbuserpropscnt where   propsid=153
       ) as A
      full  join(
      select  QdUserId,PropsId,propscnt as PropsCountB from tbuserpropscnt where  propsid=154
      ) as B
      on a.qduserid=b.qduserid
        )
     select qduserid,PropsId,ISNULL(PropsCountA,0) as PropsCountA,ISNULL(PropsCountB,0) as PropsCountB, rowNumber from Mem_TbUserPropsTop
     where rowNumber>@PageSize*(@PageIndex-1) and RowNumber<=@PageSize*@PageIndex
     order by   PropsCountA  desc 
    end
    else if(@OrderType=0)
    begin
    with Mem_TbUserPropsTop as
     (
      select A.*,b.PropsCountA,ROW_NUMBER() over (order by PropsCountB desc) as rowNumber from (
      select  QdUserId,PropsId,propscnt as PropsCountB from tbuserpropscnt where   propsid=154
       ) as A
      full  join(
      select  QdUserId,PropsId,propscnt as PropsCountA from tbuserpropscnt where  propsid=153
      ) as B
      on a.qduserid=b.qduserid
        )
     select qduserid,PropsId,ISNULL(PropsCountA,0) as PropsCountA,ISNULL(PropsCountB,0) as PropsCountB, rowNumber from Mem_TbUserPropsTop
     where rowNumber>@PageSize*(@PageIndex-1) and RowNumber<=@PageSize*@PageIndex
     order by   PropsCountB desc 
    end
    else
    begin
    with Mem_TbUserPropsTop as
     (
      select A.*,b.PropsCountA,ROW_NUMBER() over (order by PropsCountB desc) as rowNumber from (
      select  QdUserId,PropsId,propscnt as PropsCountB from tbuserpropscnt where   propsid=154
       ) as A
      full  join(
      select  QdUserId,PropsId,propscnt as PropsCountA from tbuserpropscnt where  propsid=153
      ) as B
      on a.qduserid=b.qduserid
        )
     select qduserid,PropsId,ISNULL(PropsCountA,0) as PropsCountA,ISNULL(PropsCountB,0) as PropsCountB, rowNumber from Mem_TbUserPropsTop
     where rowNumber>@PageSize*(@PageIndex-1) and RowNumber<=@PageSize*@PageIndex
     order by   PropsCountB desc 
    end


    END

     和

     order by   case when @OrderType=1  then PropsCountA when @OrderType=0 then PropsCountB when @OrderType=2  then PropsCountC else PropsCountD end  desc 

  • 相关阅读:
    实验0 了解和熟悉操作系统一、目的和要求
    读后感
    有穷自动机自动转化
    文法分析
    词法分析随笔
    git操作笔记
    面试题汇总
    MYSQL数据库设计
    Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
    invalid comparison:java.util.Date and java.lang.String
  • 原文地址:https://www.cnblogs.com/cxlings/p/3077762.html
Copyright © 2011-2022 走看看