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