Hy, ребята,
Может кто-нибудь помочь мне с подзапросом в базе данных Oracle 10g? Мне нужно извлечь значения для столбца в первой таблице в качестве значения другого столбца во второй таблице.
Я в настоящее время использую это утверждение:
SELECT
CASE WHEN A.column1 = 'A' THEN 'aaa'
WHEN A.column1 = 'B' THEN 'bbb'
.......
WHEN A.column1 = 'X' THEN 'xxx'
ELSE 'bad' END AS COLUMN1, A.*
FROM TRANSACTION_TABLE A, CATEGORY_TABLE B
WHERE A.column1 IS NOT NULL
AND A.column1 <> ' '
Это не элегантный подход, поэтому я пытаюсь использовать подвыбор из CATEGORY_TABLE B, как показано ниже:
SELECT A.column1, A.*
FROM TRANSACTION_TABLE A, CATEGORY_TABLE B
WHERE A.column1 IS NOT NULL
AND A.column1 = B.column_b_1
AND A.column1 <> ' '
AND A.column1 IN (SELECT B.column_b_1_descr FROM CATEGORY_TABLE B
WHERE B.FIELDNAME = 'column1' AND A.column1 = B.column_b_1)
Итак, я не могу получить никаких результатов с помощью подзапроса и не хочу продолжать использовать CASE при многих условиях, просто хочу заменить значения A.column1 описательными значениями из B.column_b_1_descr, так как они легче читать.
Буду признателен за любые отзывы.
Спасибо