SQL Server:动态ORDER BY,如果输入param为NULL,请不要ORDER BY?

Mar*_*tin 1 sql sql-server stored-procedures sql-order-by

我试图修改一个存储过程,我必须包含一个Input参数@OrderBy.

但我需要测试它,以确定它的NULL是否包含ORDER BYSELECTSQL中

如果它的NOT为null,那么我想按顺序排序 @OrderBy

这可能吗?

提前致谢

Joh*_*ock 6

您可以使用动态SQL来完成此任务

Declare @dynamicSQL nvarchar(5000);
Declare @orderBy nvarchar(50);

Set @orderBy = 'column1';

Set @dynamicSQL = 'Select * from Table ';

If (@orderBy IS NOT NULL) BEGIN
  @dynamicSQL = @dynamicSQL + 'Order BY ' + @orderBy;
END

exec @dynamicSQL;
Run Code Online (Sandbox Code Playgroud)