CTE(Common Table Expressions)简单介绍(二)

CTE的SQL语句里,可以使用普通的SQL语句使用的命令。
如:INNER JOIN, LEFT JOIN, UNION 等等语句都可以在CTE里使用。

With Test_CTE 
AS
(
   Select InvoiceId from Table1
   Union
   Select InvoiceId from Table2
)
Select * From Test_CTE


在CTE里,也可以使用Top, Sum, Count等语句

但是, CTE也有使用现在的。如:ORDER BY (没有TOP语句的),INTO等语句不能在里面使用。

With Test_CTE 
AS
(
   Select Count(*) As TotalCount from Table1
)
Select * From Test_CTE


Coun(*) As TotalCount的TotalCount是一定比要的。不然这个临时的数据集的字段会找不到。

 

CTE的定义还可以是自定义字段:

With Test_CTE (InvoiceId)
AS
(
   Select InvoiceId from Table1
   Union
   Select InvoiceId from Table2
)
Select * From Test_CTE

但是这种写法不是很好用。因为字段的定义是可选的,所以一般都是使用从Select里继承的字段名字。

CTE的有效范围只在同一语句。

With Test_CTE 
AS
(
   Select InvoiceId from Table1
   Union
   Select InvoiceId from Table2
)
Select * From Test_CTE
--这句会出错的。
Select * From Test_CTE


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值