SQL Switch/Case in 'where' clause SQL Switch/Case in 'where' clause sql sql

SQL Switch/Case in 'where' clause


declare @locationType varchar(50);declare @locationID int;SELECT column1, column2FROM viewWhateverWHERE@locationID =   CASE @locationType      WHEN 'location' THEN account_location      WHEN 'area' THEN xxx_location_area       WHEN 'division' THEN xxx_location_division   END


without a case statement...

SELECT column1, column2FROM viewWhateverWHERE    (@locationType = 'location' AND account_location = @locationID)    OR    (@locationType = 'area' AND xxx_location_area = @locationID)    OR    (@locationType = 'division' AND xxx_location_division = @locationID)


Here you go.

SELECT   column1,    column2FROM   viewWhateverWHERECASE     WHEN @locationType = 'location' AND account_location = @locationID THEN 1    WHEN @locationType = 'area' AND xxx_location_area = @locationID THEN 1    WHEN @locationType = 'division' AND xxx_location_division = @locationID THEN 1    ELSE 0END = 1