一、背景
运行以下代码,报错SQL_ERROR_INFO: 'Every derived table must have its own alias'
select *
from(
select user_id,row_number() over(partition by user_id order by user_id) as re,
lead(date,1,0) over(partition by user_id order by user_id) as lo
from login
)
where re=2;

二、查找原因
报错语句SQL_ERROR_INFO: 'Every derived table must have its own alias',翻译过来就是每个派生的表必须由它自己的别名。
这是在做多表查询时,或者在子查询新产生的表时如果新表未被起别名系统会报错。因此只需给新表起个别名即可
三、解决方案
给新表起别名!
select *
from(
select user_id,row_number() over(partition by user_id order by user_id) as re,
lead(date,1,0) over(partition by user_id order by user_id) as lo
from login
) as newtable #给新表起别名!
where newtable.re=2;
本文解释了SQL错误'Every derived table must have its own alias'的原因,即子查询中新产生的表需要别名。通过实例展示了如何在查询中添加别名以解决问题。
3896

被折叠的 条评论
为什么被折叠?



