Сделайте выбор в зависимости от результата другого выбора - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть простой запрос, подобный следующему:

    SELECT RoleId FROM Security.UserRoles WHERE UserId = 8

Он выдает мне значения 1 и 2.

Я хочу добавить условие, если этот выбор содержит число 2, и другой выбор, подобный этому:

    SELECT COUNT(O.OrderId) AS TotalItems FROM Store.[Order] O

Я пытаюсь что-то вроде этого:

, если не сделать предложение else с другим выбором, как я могу этого добиться?С уважением

 IF(SELECT RoleId FROM Security.UserRoles WHERE UserId = 8 =2)

но мой синтаксис неверен

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

Используйте ELSE (IF...ELSE) в вашем случае, например, так:

IF (SELECT SUM(CASE WHEN RoleID = 2 THEN 1 ELSE 0 END) FROM UserRoles WHERE UserId = 8) > 0 
    SELECT COUNT(O.OrderId) AS TotalItems FROM Store.[Order] O
ELSE 
    Query2;

ОБЩИЙ СИНТАКСИС:

IF Boolean_expression   
     { sql_statement | statement_block }   
[ ELSE   
     { sql_statement | statement_block } ]  

Ссылка на демонстрацию:

http://sqlfiddle.com/#!18/bf55c/3

0 голосов
/ 26 апреля 2018

Пример использования, близкий к if

SELECT 
( Case When RoleId =2 then
(  SELECT COUNT(O.OrderId) AS TotalItems FROM Store.[Order] O) else 0 end ) count

FROM Security.UserRoles WHERE UserId = 8
0 голосов
/ 26 апреля 2018
IF(EXISTS(SELECT RoleId FROM Security.UserRoles WHERE UserId = 8 AND RoleId =2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...