order by后面带参数的方法

USE [QPGameGirlDB]
GO
/****** 对象:  StoredProcedure [dbo].[UP_Rank]    脚本日期: 05/20/2011 16:28:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[UP_Rank]
@topvalue varchar(1000),
@orderFields varchar(5000)
 AS   
  Declare @sql varchar(5000); -- 条件语句(不加 where,可带 group by 分组条件,分组条件需要带 group by 关键字)
	if(@topvalue='')
set @sql ='SELECT
	A.UserID, A.Constellation, A.Hot, A.Charm, A.Time, A.FavouriteGame, A.Star, A.Star_Num, A.Remark,A.Birthday, A.Hobby, A.BloodType, A.Height, A.City
	,B.Accounts as NickName,ROW_NUMBER() over(order by '+@orderFields+ ' desc) as RowNum,(Select count(*) From Fans Where UserID=A.UserID) As FansCount
    FROM [UserData] as A
LEFT JOIN dbo.GameAccountsInfo B on B.UserID=A.UserID
  order by '+@orderFields+ ' desc';
   else
set @sql ='SELECT top('+@topvalue+')
	A.UserID, A.Constellation, A.Hot, A.Charm, A.Time, A.FavouriteGame, A.Star, A.Star_Num, A.Remark,A.Birthday, A.Hobby, A.BloodType, A.Height, A.City
	,B.Accounts as NickName,ROW_NUMBER() over(order by '+@orderFields+ ' desc) as RowNum,(Select count(*) From Fans Where UserID=A.UserID) As FansCount
    FROM [UserData] as A
LEFT JOIN dbo.GameAccountsInfo B on B.UserID=A.UserID
  order by '+@orderFields+ ' desc';

exec(@sql)

转载于:https://www.cnblogs.com/_cloudy/archive/2011/05/20/2052149.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值