sql - 为 CTE 内的变量赋值
问题描述
我想在 CTE 中为我的变量分配一个值,并在我的下一个 CTE 中使用它。
可能吗?
declare @TypeQty as int
;
With CTE1 as
(@TypeQty = (select Count(ID) as MyQty from MyTbl))
,CTE2 as
(select * from MyTbl2 where Qty= @TypeQty)
Select * from CTE2
我知道可以通过其他方式实现,但我想知道 CTE 是否可行?
解决方案
在 SQL Server 中,您不能像在问题中所写的那样使用此语法。
您可以使用没有变量的计算值,只需引用 CTE 本身。像这样的东西:
WITH
CTE1
as
(
select Count(ID) as MyQty
from MyTbl
)
,CTE2
as
(
select *
from
MyTbl2
INNER JOIN CTE1 ON MyTbl2.Qty = CTE1.MyQty
)
Select *
from CTE2
;
推荐阅读
- android - React Native:如何避免随着时间的推移在不同的本地环境中构建错误
- java - android.support.v4.widget.DrawerLayout 无法实例化 - 实现的损坏的类路径
- css - 如何使用 CSS 为选中的复选框选择标签?
- reactjs - 如何在映射的选择菜单项中显示选定的值
- android - 如何在 Android 项目中 gitignore 特定的 Java 文件或任何文件夹或任何 XML 文件?
- mysql - 什么改变了 ASP.NET Core 连接字符串中的“localhost”?
- javascript - 在移动设备中单击 youtube thumb 时无法播放 Youtube 视频
- c# - 如何找到 vswhere 的 exe 路径?
- python - 为什么 FOR IN 代码在重复时循环遍历数组中的最后一个(Python)?
- android - 如何在 Delphi FMX Android 平台上通过 Sip 和 SipManager 拨打电话?