Я пытаюсь использовать один столбец, полученный из выражения CASE, для установки другого значения столбца.
EG У меня есть пользователь таблицы с несколькими столбцами. Во-первых, мне нужно установить статус проекта на основе значений некоторых столбцов в таблице. Я могу заставить эту часть работать. Вторая часть, в зависимости от значения статуса, мне нужно получить имена пользователей из нескольких столбцов. Когда я это делаю, я получаю сообщение об ошибке
Недопустимый столбец «Статус»
Пример запроса следующий:
SELECT
STATUS = CASE WHEN ISNULL(USER1,'') = '1' THEN 'Approve'
WHEN ISNULL(USER2,'') = '2' THEN 'Reject'
WHEN ISNULL(USER3,'') = '3' THEN 'Pending Decision'
ELSE 'error' END,
USERNAME = CASE WHEN ISNULL(STATUS,'') = 'Approve' THEN (select username1 from <table> where userid = <userid>)
WHEN ISNULL(STATUS,'') = 'Reject' THEN (select username2 from <table> where userid = <userid>)
WHEN ISNULL(STATUS,'') = 'Pending Decision' THEN (select username3 from <table> where userid = <userid>)
ELSE 'error' END
from <table> where userid = <userid>