SELECT 语句请教

小蚁雄兵 2011-09-02 10:44:34
SQL SERVER的SQL语句中有没有类似ORACLE中WITH 子句的用法?
...全文
60 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
小蚁雄兵 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fredrickhu 的回复:]

oracle中的with是干什么的?
[/Quote]
WITH 子句
用 WITH 子句,你可以在一个查询中使用一个定义的查询块。WITH 子句 (通常
称为 subquery_factoring_clause) 使你能够在一个复杂查询中的 SELECT 语
句中多次重用相同的查询块。当一个查询多次涉及相同的查询块并且有连接何聚合时,
这是特别有用的。
使用 WITH 子句,当计算查询块的代价较高并且它在一个复杂的查询中出现多次时你
可以重用相同的查询。使用 WITH 子句,Oracle 服务器取回一个查询的结果并且将
它存储在用户的临时表空间中。这可以增进性能。

WITH 子句的优点
ƒ 使得查询易于阅读
ƒ 即使一个子句在查询中多次出现,只进行一次计算,因此可以提高性能。
--小F-- 2011-09-02
  • 打赏
  • 举报
回复
oracle中的with是干什么的?
小蚁雄兵 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ssp2009 的回复:]

SQL code
with cte as
(select * from tb)

select * frm cte
[/Quote]谢谢,原来与ORACLE是一样的用法。
try-catch-finally 2011-09-02
  • 打赏
  • 举报
回复
楼上的这么多勋章都是高手啊,我是来学习的
快溜 2011-09-02
  • 打赏
  • 举报
回复
with cte as
(select * from tb)

select * frm cte
chuanzhang5687 2011-09-02
  • 打赏
  • 举报
回复
SQL 2005及以后的版本是支持with公共表达式的。
dawugui 2011-09-02
  • 打赏
  • 举报
回复
insert into select * from tb

select * into #tb from t
叶子 2011-09-02
  • 打赏
  • 举报
回复
oracle中的with是干什么的我不了解。
但是SQL 2005及以后的版本是支持with公共表达式的。

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧