如何使用CASE作为开关

时间:2018-02-02 12:35:57

标签: sql sql-server

我有一个带有4个参数的函数,它返回一个int。 我想返回基于结果的od函数参数@Type。

我试过了:

SELECT @Result =

        CASE @Type

        WHEN 'Country' THEN
            BEGIN
                SELECT
                    IIF(COUNT(spc.DateID) = 0, 0, 1)
                FROM
                    dim.SalesPlanCountry spc
                    JOIN dim.Calendar cal ON spc.DateID = cal.DateID
                WHERE
                    cal.CalendarYear    = @Year
                    AND cal.MonthOfYear = @Month
                    AND spc.CountryID   = @CountryID
            END

        WHEN 'Region' THEN
           BEGIN        
              ...

END

1 个答案:

答案 0 :(得分:1)

只需使用IF块:

IF @Type = 'Country'
BEGIN
    SELECT * FROM Table1
END

IF @Type = 'Bob'
BEGIN
    SELECT * FROM Table2
END