我正在 Oracle 数据库中创建以下视图
CREATE VIEW "view"."table2" ( "type1", "type2") AS
SELECT
CASE WHEN n.flag2 = 'Y' AND n.flag1 = 'Y' THEN 'n1'
WHEN n.flag2 = 'N' AND n.flag1 = 'Y' THEN 'n2' WHEN n.flag2 = 'Y' AND n.flag1 = 'N' THEN 'n3' else 'n4' end as type1,
CASE WHEN post_code in ('AB') THEN 'w' WHEN post_code in ('NB') THEN 'e' ELSE 'o' END AS type2
FROM
(
SELECT
CASE WHEN date1 > SYSDATE + 1 AND email11 IS NOT NULL THEN 'Y' ELSE 'N' END AS flag1,
CASE WHEN date2 > SYSDATE + 12 AND email2 IS NOT NULL THEN 'Y' ELSE 'N' END AS flag2,
post_code
FROM
table1 m
WHERE
date3 > sysdate ) n;
当我在下面运行时
从表2中选择*;
但是当我运行时 select type1 from table2;这是我的错误
无效的标识符 00904. 00000 - “%s:无效标识符”
我尝试了多个视图来修改视图,但我的方法都不起作用
如果您使用带引号的标识符:
CREATE VIEW "view"."table2" ( "type1", "type2")
然后做:
select "type1" from "table2"
但是,在实践中更常见的是不使用引号。
CREATE VIEW view.table2 ( type1, type2)
select type1 from table2