Sql server 2008 如何在SSRS查询设计器中使用带参数的IF-ELSE语句?
我愿意实现的是:Sql server 2008 如何在SSRS查询设计器中使用带参数的IF-ELSE语句?,sql-server-2008,reporting-services,ssrs-2008,Sql Server 2008,Reporting Services,Ssrs 2008,我愿意实现的是: 向报告中添加一个名为@OrderBy的新参数 如果@OrderBy的值为null或空白,则使用OrderBy DaysLate DESC(表示当前功能将保持原样) 如果@OrderBy的值为1,则使用Order By RugID ASC(意味着我们将按RugID按升序订购地毯,而不是按延迟天数降序订购) 我使用这个查询(下面的屏幕截图)来实现它: 您可以使用大小写表达式。下面是一个例子: DECLARE @OrderBy VARCHAR(10) = 'Col1' DECLARE
您可以使用
大小写
表达式。下面是一个例子:
DECLARE @OrderBy VARCHAR(10) = 'Col1'
DECLARE @Tab TABLE (Col1 INT, Col2 INT, Col3 INT)
INSERT @Tab VALUES
(1,2,3),
(3,2,1),
(4,5,6),
(7,8,9),
(8,7,6)
SELECT *
FROM @Tab
ORDER BY CASE WHEN @OrderBy = 'Col1' THEN Col1
WHEN @OrderBy = 'Col2' THEN Col2
ELSE Col3 END
因此,在您的情况下,它可能看起来像:
... ORDER BY CASE WHEN COALESCE(@OrderBy,'') = '' THEN DaysLate DESC
WHEN @OrderBy = 1 THEN RugId
ELSE "Some Other Column" END
话虽如此,使用表达式指定report tablix组中的顺序逻辑可能是一个更好的主意