sql中with as的用法

请举例子说明 谢谢 觉得好我会多加20分
2025-02-28 14:44:26
推荐回答(5个)
回答1:

你可以查询CTE,即common_table_expression,创建个临时表。
用途:1,以前的子查询可以用它代替了,看上去很明了;2,也即他的优点,可以递归调用:select uinon all select cte
用法你可以F1。
注意:1,一般我们写 ;with cte as , 因为若他不是批处理的开始则加;分号。
2,一个with中 不同的表用,逗号分开,如
;with cet1 as ()
,cte2 as()
cte3 as()

回答2:

with
wd as (select did,arg(salary) 平均工资 from work),
em as (select emp.*,w.salary from emp left join work w on emp.eid = w.eid);

select * from wd,em where wd.did =em.did and wd.平均工资>em.salary;

其实就是把查询结果放入一个临时表中,然后再通过查询语句从临时表中查询结果

回答3:

是给现有的字段名另指定一个别名的意思,比如:
select
username
as
用户名,password
as
密码
from
users
补充:比如其中的一个好处是:当字段名是英文或拼音缩写时,采用汉字替代之后可以给阅读带来方便

回答4:

如下:

[TEST@ORA1] SQL>with cr as(
2 select * from tab)
3 select * from cr;

TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
A TABLE
TEST TABLE

详细的说明请参照:
http://blog.163.com/wudataoge/blog/static/80073886200961652022389/

---
以上,希望对你有所帮助。

回答5:

SQL> with test as(
2 select 1 a,2 b from dual
3 union
4 select 2 a,4 b from dual
5 )
6 select * from test;

A B
---------- ----------
1 2
2 4