我使用以下内容作为查询的一部分
> final.test
X Y Z
1 1 2 A
2 3 2 B
4 1 3 D
我收到的错误是" MEMO":无效标识符
我也试过
SELECT
MEMO_COMMENT as MEMO,
INSTR(MEMO, 'PD') AS PastDue
FROM table
并收到同样的错误
有没有办法像这样声明字段?我觉得我错过了一些明显的东西。
答案 0 :(得分:0)
在第一个中,您不能将别名用作同一嵌套级别的选择字段,因此它是错误的第二个引用:
SELECT
MEMO_COMMENT as MEMO,
INSTR(MEMO, 'PD') AS PastDue
FROM table
应该是:
SELECT
MEMO_COMMENT as MEMO,
INSTR(MEMO_COMMENT , 'PD') AS PastDue
FROM table
或者您可以从更高的嵌套级别引用别名,例如:
SELECT
INSTR(MEMO , 'PD') AS PastDue
FROM ( SELECT
MEMO_COMMENT as MEMO
FROM table )
对于第二个WITH语句,您将数据集别名为名为MEMO的表 - 而不是字段。这可以工作:
WITH MEM_DATA AS (select MEMO_COMMENT as MEMO FROM table)
select INSTR(MEMO, 'PD') AS PastDue`
FROM MEM_DATA;