Oracle数据库中出现“表或视图不存在”

时间:2018-11-08 08:46:16

标签: database oracle nested-query

class AddAttrb(object):
    def __init__(self, name, Etype=None):
        self.name = name
        self.Etype = Etype

    def __get__(self, instance, owner):
        if instance is None:
            return self
        else:
            return instance.__dict__[self.name]

    def __set__(self, instance, value):
        if self.Etype:
            if not isinstance(value, self.Etype):
                raise TypeError('Need to be type: {}.'.format(self.Etype))
        instance.__dict__[self.name] = value

    def __delete__(self, instance):
        del instance.__dict__[self.name]


class CellParagraph(object):


    bold = AddAttrb('bold', bool)
    italic = AddAttrb('italic', bool)
    underline = AddAttrb('underline', bool)
    ...many more...

    def __init__(self, cell, text=None, style='Default Paragraph Font', font=None, bold=False, italic=False, underline=False,
             font_color=None, size=0, alignment='center'):
        self._paragraph = self._cell.paragraphs[0]
        self._run = self._paragraph.add_run(text, style=self.style)
        self.font = font
        self.bold = bold
        self.italic = italic
        ...many more...

    def refresh(self):
        self._run.bold = self.bold
        self._run.italic = self.italic
        self._run.underline = self.underline
        ...many more...

选择*从( 从学生中选择*)t1,其中t1.payment =(从t1中选择最高(付款))

这显示有误

从学生那里选择*,其中付款=(从学生那里选择最高(付款))

这是正确的

但是任何人都可以澄清为什么t1不正确吗?如何使用t1是where子句,请告诉

3 个答案:

答案 0 :(得分:1)

with t1 as (select max(payment) payment from student )

select name, student.payment from student ,t1 where student.payment = t1.

答案 1 :(得分:1)

CTE也许是最简单的选择; T1将是CTE本身,之后您可以引用它:

with t1 as (select * from student)
select * from t1
where t1.payment = (select max(payment) from t1);

答案 2 :(得分:1)

这会导致错误,因为T1不是表,应该以表为先例,可以使用通用表表达式

例如

with ct as (
select 1,2 from dual )

select * from ct

在您的示例中

with st as ( select * from student)
select * from st where st.paymnet=(select max(payment) from st)