2017-08-25 15 views
0

如果參數從變量傳遞,我將顯示錶和我需要從SQL Server表中選擇具有特定參數的自由變量與參數列。如何在自由變量的特定參數中查找SQL Server中的數據對

我不知道我該如何實現這個結果。

篩選參數:

ParameterFilterB -   
ParameterFilterC -   
ParameterFilterD -   
ParameterFilterE - B  

表:

A B C D E 
------------------ 
1 A A A A 
2 A A A B 
3 A B A C 
4 A B A D 

結果:

A B C D E 
------------------ 
1 A A A A 
2 A A A B 
3 A B A C 

請幫助我,在此先感謝。

+0

你能澄清你的邏輯一點點:當有人進入或Z

對於ParameterFilterB代碼是這樣的,會發生什麼更多? – Alex

+0

我有多個參數,如果他們通過,然後檢查其他沒有+/- 1值的特定列。 –

+0

仍然不清楚給我。也許還包括幾個例子? – Alex

回答

0

您需要使用ASCIICHAR函數。

您可能還想檢查允許的最小/最大字符數,例如

DECLARE @ParameterFilterBMin CHAR(1), @ParameterFilterBMax CHAR(1) 

-- Set first search letter 
SET @ParameterFilterBMin = 
    CASE 
     -- Handle edge case 
     WHEN @ParameterFilterB = 'A' THEN 'A' 
     -- Get previous letter 
     ELSE CHAR(ASCII(@ParameterFilterB) - 1) 
    END 

-- Get last search letter 
SET @ParameterFilterBMax = 
    CASE 
     -- Handle edge case 
     WHEN @ParameterFilterB = 'Z' THEN 'Z' 
     -- Get next letter 
     ELSE CHAR(ASCII(@ParameterFilterB) + 1) 
    END 

-- Find matching values 
SELECT * 
FROM Table 
WHERE colB BETWEEN @ParameterFilterBMin AND @ParameterFilterBMax 
    -- AND/OR colC BETWEEN @ParameterFilterCMin AND @ParameterFilterCMax 
    -- etc. 

你應該能夠複製這一其他參數

+0

我也需要配對,所以我如何應用這個領域的動態分組? –

+0

@HirenJasani - 使用多個過濾器,將它們添加到'WHERE'子句。我已經更新了我的答案。 – Alex

+0

我想知道, 如果我通過再一個參數分組只適用於一個領域, 如果我傳遞了兩個參數,然後分組適用於兩個領域, 我怎樣才能做到這一點?因爲我也需要應用配對計數,意思是如果用戶選擇2然後我給他們只有大於1的記錄。 –

相關問題