Выполняю нижеследующий запрос и используя псевдоним для всех столбцов. Я назвал псевдоним с a. поскольку это требование. Теперь, я хочу, чтобы ссылаться на имя псевдонима непосредственно в ИНЕКЕ и я сделать это, как указано ниже:Использование alisa в выражении WHERE
SELECT pt.prod_desc AS"PROD_DESC",
(
CASE
WHEN pt.prod_level='2'
THEN 'Product'
WHEN pt.prod_level='4'
THEN 'Sub-Product'
WHEN pt.prod_level='5'
THEN 'Service'
ELSE 'N/A'
END) AS"PROD_LEVEL",
prod_id AS "PROD_ID",
isactive AS "IsActive",
updt_usr_sid AS "UPDT_USR_SID",
updt_ts AS "UPDT_TS",
(
CASE
WHEN pt.prod_level='5'
THEN parent_prod_id
ELSE NULL
END) AS ".SUB_PROD_ID",
(
CASE
WHEN pt.prod_level='5'
THEN
(SELECT prod_desc FROM dims_prod_type A WHERE A.prod_id= pt.parent_prod_id
)
ELSE 'N/A'
END) AS ".SUB_PROD_DESC",
(
CASE
WHEN pt.prod_level='4'
THEN parent_prod_id
WHEN pt.prod_level='5'
THEN
(SELECT parent_prod_id
FROM dims_prod_type A
WHERE A.prod_id= pt.parent_prod_id
)
ELSE NULL
END) AS ".PRNT_PROD_ID",
(
CASE
WHEN pt.prod_level='4'
THEN
(SELECT prod_desc FROM dims_prod_type A WHERE A.prod_id=pt.parent_prod_id
)
WHEN pt.prod_level='5'
THEN
(SELECT prod_desc
FROM dims_prod_type A
WHERE A.prod_id IN
(SELECT B.parent_prod_id
FROM dims_prod_type B
WHERE b.prod_id=pt.parent_prod_id
)
)
ELSE 'N/A'
END)AS ".PRNT_PROD_DESC"
FROM dims_prod_type pt
WHERE pt.".PRNT_PROD_ID" like 'A%';
Однако, когда я исполняющего это я получаю следующее сообщение об ошибке:
SQL Error: ORA-00904: "PT".".PRNT_PROD_ID": invalid identifier
00904. 00000 - "%s: invalid identifier"
I что SQL выполняет первое предложение where и, следовательно, является причиной ошибки. Но как я могу это исправить? Любые предложения, пожалуйста?
Пожалуйста, отформатируйте запрос, чтобы он был более читабельным. – kyooryu
Не имеет отношения к вопросу на самом деле, но почему это требование иметь «.» В псевдониме? В вашем предыдущем вопросе было упомянуто, что в нем необходимо указывать псевдоним везде и точно соответствовать используемому случаю. Я не могу придумать, почему это было бы полезно. Просто любопытно ... –