在派生列中使用SUBSTR函数时,获取列不存在错误

问题描述

我有两个名为“客户”和“合同”的表。

查询

    Select 
   cu.A||cu.B||Co.C||Co.D as DUMMY,(SUBSTR(DUMMY,25,1) as NEND,SUBSTR(DUMMY,1,19) as MDATE
    from Customer Cu
    Left Outer Join Contract Co
    on Cu.A=Co.D

因此,在运行此查询时,出现诸如“ DUMMY列不存在”之类的错误

任何人都可以帮助我如何实现这一目标。

解决方法

DUMMY是别名,因此无法像您一样在同一查询中引用它。

如果要使用substr别名,则必须将整个查询作为子查询。然后,您可以使用select dummy,substr(dummy,25,1) as nend,1,19) as mdate from ( select cu.a||cu.b||co.c||co.d as dummy from customer cu left outer join contract co on cu.a = co.d ); 函数,如下所示:

{
  "personalizations": [
    {
      "to": [
        {
          "email": "[email protected]"
        }
      ],"subject": "Postman Sendgrid email Test"
    }
  ],"from": {
    "email": "[email protected]"
  },"content": [
    {
      "type": "text/plain","value": "Hello,World!"
    }
  ]
}
,

使用子查询或CTE的另一种方法是使用横向联接来定义列:

select s.DUMMY,SUBSTR(s.DUMMY,1) as NEND,19) as MDATE
from Customer Cu left join
     Contract Co
     on Cu.A = Co.D left join lateral
     (select cu.A || cu.B ||C o.C || Co.D as dummy
      from dual
     ) s