SQL select all all if参数为null,order by Date返回特定项

时间:2015-12-23 09:55:21

标签: sql stored-procedures

我有下一个存储过程:

create procedure GetX
(
@IDX int
)
as
begin
    select * from dbo.X 
    where IDX = case when @IDX IS NULL then IDX 
    else @IDX end 
end
go

dbo.X是一个包含多个列的表,包括主键IDX和每次修改行时修改的ModifiedDate。

存储过程应执行以下操作: - 如果参数为null,则返回表格中的所有行,并按顺序返回修订日期 - 否则只返回与ID匹配的行

我应该在哪里放置ORDER BY以便代码可以正常工作?

1 个答案:

答案 0 :(得分:2)

create procedure GetX
(
@IDX int
)
as
begin
    select * from dbo.X 
    where IDX = case when @IDX IS NULL then IDX 
    else @IDX end 
    ORDER BY ModifiedDate desc
end
go