запрос на возврат дополнительного столбца с некоторым условием - PullRequest
0 голосов
/ 13 октября 2011

таблица: Emaployee
Столбцы: имя (nvarchar (256)), оклад (десятичное число (18,2))

Теперь я хочу получить результат с дополнительным столбцом
'Grade' =
«А», если зарплата <15000,00, <br> «B», если 25000,00> Зарплата> 15000,00,
'C' если зарплата> 25000,00

Как я могу написать запрос для этого?

Ответы [ 3 ]

3 голосов
/ 13 октября 2011
SELECT name, 
       salary, 
       (CASE 
             WHEN salary<15000 THEN 'A' 
             WHEN salary>15000 AND salary <25000 THEN 'B' 
             ELSE 'C' 
       END) AS grade
FROM employee

Не пробовал следующее, но оно тоже может работать:

SELECT name, 
       salary, 
       IIF (salary<15000, 'A', IIF (salary>15000 AND salary<25000, 'B', IIF (salary>25000, 'C', ))) AS grade
FROM employee
2 голосов
/ 14 октября 2011

= 'Класс' «А», если зарплата <15000,00, «B», если 25000,00> Зарплата> 15000,00, 'C' если зарплата> 25000,00

Спецификация кажется ошибочной. Вы должны вернуться к своему дизайнеру и спросить его, какая оценка относится к сотрудникам с зарплатой ровно 15000,00 и 25000,00 соответственно, потому что они не указаны. Ниже приводится предположение (и я не рекомендую угадывать на практике):

SELECT name, salary, 'A' AS Grade
  FROM Employee
 WHERE Salary BETWEEN 0 AND 14999.99
UNION
SELECT name, salary, 'B' AS Grade
  FROM Employee
 WHERE Salary BETWEEN 15000.00 AND 24999.99
UNION
SELECT name, salary, 'C' AS Grade
  FROM Employee
 WHERE Salary >= 25000.00;
2 голосов
/ 13 октября 2011

IIF представлен в T-SQL с Denali, поэтому последние могут работать только с версиями Denali Пожалуйста, проверьте это Учебное пособие по T-SQL IIF

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...