在T-SQL语句中从多个中选择一个变量

时间:2015-07-19 06:46:50

标签: sql-server tsql variables reporting-services

我对SSRS的T-SQL语句有疑问。在我的报告中,我有2个变量,用户只能选择一个变量。我必须编写一个取决于用户选择的查询。我试着举个例子:

@varA = 'sometext'
@varB = 'othertext'

SELECT A.SomeValue, B.SomeValue
FROM tableA AS A
INNER JOIN tableB AS B ON A.ID = B.ID
WHERE 
   (and here comes my problem)

1 个答案:

答案 0 :(得分:0)

尝试这样的事情。

SELECT A.SomeValue, B.SomeValue
FROM tableA AS A
INNER JOIN tableB AS B ON A.ID = B.ID
WHERE (sometext_col = @varA  or @varA is null) 
And   (othertext_col = @varB  or @varB is null) 

此查询将根据用户选择返回行。

  • 如果用户仅选择@varA,则会根据数据过滤数据 @varA

  • 如果用户仅选择@varB,则会根据数据过滤数据 @varB

  • 如果用户同时选择@varA@varB,则会过滤数据 两个变量。

  • 如果用户没有选择任何内容,则会返回所有行 从表中。

注意:当用户没有选择变量时,请确保它是NULL