0

郡パラメーターがあります。null の場合は、コラボレーション内のすべての郡を選択します。null でない場合は、その 1 つの郡の値が必要です。IFステートメントを正しく設定するにはどうすればよいですか? ステートメントの最初の部分では、IF複数の郡 ID が返される可能性があるため、 を入れてWHERE CountyIdいます。

SELECT a.CountyId, co.Description as County
FROM Application as a
    INNER JOIN Dictionary.Counties as co on a.CountyId = co.Id
WHERE co.Id in 
    IF @pCountyId is null then 
    BEGIN
        SELECT cc1.CountyId 
        FROM CountyCollaboration as cc1
        WHERE cc1.CollaborationId = (SELECT cc2.CollaborationId
                FROM CountyCollaboration as cc2
                WHERE cc2.CountyId = @pHiddenCountyId)
    END
    ELSE 
    BEGIN
        SELECT @pCountyId
    END
4

2 に答える 2

0

使用する:

CountryId = case when @counrtyid is null then CountryId else @CounrtyId end
于 2013-11-08T23:29:08.430 に答える
0
select 
    a.CountyId, 
    co.Description as County
from
    Application as a
        inner join
    Dictionary.Counties as co 
        on a.CountyId = co.Id
        inner join
    CountyCollaboration cc1
        on co.id = cc1.CountyId
        inner join
    CountyCollaboration cc2
        on cc1.CollaborationId = cc2.CollaborationId
where
    c2.CountyId = IsNull(@CountyId, @pHiddenCountyId)
于 2013-11-08T23:15:05.810 に答える