我正在創建一個基于具有多個列的 SQL 表的 SSRS 報告。在我的報告中,我有多達 10 個引數。我想創建一個資料集,該資料集將根據引數填充我的報告(每個引數都是查詢中的一個條件)。問題是我的所有引數除了一個之外都可以為 NULL。根據一些研究,我發現“如果嵌套”可以作業,基本上是這樣的:
if(@param1 IS NOT NULL)
{
SELECT * from table
WHERE Column_1=@param1 ;
}
else
if(@param1 IS NOT NULL AND @param2 IS NOT NULL)
{
SELECT * from table where Colum_1=@param1 AND Column_2=@param2;
}
else.....
但我很快意識到,因為我有 10 個引數,所以如果我想涵蓋所有情況,那么有很多組合 (IF)。例如,如果我認為引數中的 3 個不為空,那么我將不得不為 (param1, param2, param3) 不為空的情況添加一個 IF,當 (param1, param2, param4) 不為空時添加另一個, (param1, param2, param5), (param1, param2, param6).... 當 4 個引數不為空時相同,5 個引數不為空,直到 10 個引數不為空。
關于構建此查詢的更好方法和更少時間的任何想法?
謝謝!
uj5u.com熱心網友回復:
你可以像這樣簡單地做到這一點。
SELECT * FROM myTable
WHERE (Col1 = @p1 OR @p1 IS NULL)
AND (Col2 = @p2 OR @p2 IS NULL)
AND (Col3 = @p3 OR @p3 IS NULL)
等等...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/463717.html
上一篇:python關于值的引數
