我正在从非DBA角度处理此问题,因为我没有权限为数据库创建新表。我试图通过在Oracle中使用类似sudo代码的子查询来解决这个问题:
With temptable as ('col1name', 'col2name', 1,'a',2,'b')
Select * from temptable where col1name = 1
看起来像
Col1name | Col2name
1 a
2 b
输出是第1行。我知道这不是最简单的方法,但是我可以想到完成任务,直到我可以让管理员批准新表。我搜索了很多,但我找不到答案。有没有一种简单的方法可以像这样定义临时表数据?
答案 0 :(得分:2)
我会这样做:
with temptable as (
select 1 as col1name, 'a' col2name from dual union all
select 2, 'b' from dual
)
Select *
from temptable
where col1name = 1;
答案 1 :(得分:1)
作为Gordon建议的CTE(常用表格表达)的替代方法,您还可以将查询用作旧式内联视图。
例如:
SELECT tt.col1name
, tt.col2name
FROM ( SELECT 1 AS col1name, 'a' AS col2name FROM DUAL
UNION ALL SELECT 2, 'b' FROM DUAL
UNION ALL SELECT 3, 'c' FROM DUAL
) tt
WHERE tt.col1name = 1
ORDER
BY tt.col1name