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 

  • 相关阅读:
    使用Arduino和加速度计自制计步器
    使用MPU6050陀螺仪自制Arduino数字量角器
    使用Arduino和SD卡模块记录数据并导出到Excel
    NUCLEO-8L152开发板中文应用笔记整理集合
    使用Arduino开发板连接干簧管(Reed Switch)的方法
    MSP430 LaunchPad开发板入门教程集合
    使用Arduino开发板和ESP8266从互联网读取数据
    使用Arduino开发板实现与MPU6050陀螺仪传感器连接的方法
    使用Arduino和LED光柱显示器件轻松制作电池电压指示器
    JDK和JRE的区别
  • 原文地址:https://www.cnblogs.com/cxlings/p/3077762.html
Copyright © 2011-2022 走看看