对于SQL Server,确实有类似的问题,但是我使用的是Postgres 9.3,而','
无效
我正在比较两个单独的年份。例如2016年和2015年
我检查用户在2年的课程中是否获得了相同科目的不良成绩。
我的代码如下
with currentyeargrade (
select ....
from (...
...)t)
with previousyeargrade(
select ....
from (...
...)y)
select *
from currentyeargrade cyg
inner join previousyeargrade pvg on pvg.userid = cyg.userid
我是一名SQL开发人员,并且没有创建临时表的管理员权限。
答案 0 :(得分:3)
使用CTE时,只需在前一个with
中写CTE
,然后使用,
逗号连接多个CTE
。
with currentyeargrade as (
select ....
from (...
...)t),
previousyeargrade as(
select ....
from (...
...)y)
select *
from currentyeargrade cyg
inner join previousyeargrade pvg on pvg.userid = cyg.userid
这是给您的样品
CREATE TABLE T(col int);
insert into T values (1);
查询1 :
with currentyeargrade as (SELECT * FROM T),
previousyeargrade as (SELECT * FROM T)
select *
from previousyeargrade cyg
CROSS JOIN currentyeargrade pvg
Results :
| col | col |
|-----|-----|
| 1 | 1 |