При написании клиент-серверных приложений обычно возникает одна проблема в тех случаях, когда ему нужно выполнить запрос, который возвращает разные записи, в соответствии с которыми зарегистрирован пользователь.
Я использую этот подход, но мне интересно, есть лиальтернативы, можете ли вы предложить?
(причина, по которой я спрашиваю, состоит в том, что для более сложных запросов это становится совершенно нечитаемым, в то время как для некоторых операторов CASE
это будет лучше).
declare @UserIsAdministrator bit;
declare @UserID integer;
set @UserIsAdministrator = 0 -- test value
set @UserID = 41; -- test value
SELECT * FROM employees
WHERE
(@UserIsAdministrator = 1) -- if user is admin return all records
OR
(
(@UserIsAdministrator = 0)
AND
(manager_ID = @UserID)
) -- if user is not admin return only "his" records