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子句,请告诉
答案 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)