SQL存储过程中的排序问题
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[获得_列表]
@按列名排序 int,
@排序方法 int --0:升序 1:降序
AS
BEGIN
--正确的:
SELECT
....(中间部分省略)....
ORDER BY
case @按列名排序 when 0 then a.回贴时间 when 1 then a.创建时间 end DESC
/*不正确的:
SELECT
....(中间部分省略)....
ORDER BY
case @按列名排序 when 0 then a.回贴时间 when 1 then a.创建时间 end
case @排序方法 when 0 then asc when 1 then desc end
*/
END
问题是:我想在存储过程中实现对列的升序还是降序的控制(我不想用SQL字符串的方式,那样的话,还不如在程序里组织SQL语句方便,我们用存储过程就是为了提高效率嘛),但是我没能实现(参看不正确部分),高手别笑我,希望帮帮我。