嗨,伙计们,
任何人都可以帮我处理 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,只想用 B.column_b_1_descr 的描述性值替换 A.column1 值,因为它们更容易阅读. 我将不胜感激任何反馈。谢谢