sql-server – SQL Server 2005中CTE的范围
发布时间:2020-05-25 13:55:25 所属栏目:MsSql 来源:互联网
导读:WITH emp_CTE AS ( SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 1)) AS IdentityId, * FROM dbo.employee )SELECT * FROM emp_CTE 这很好用 如果相同的查询是这样写的. WITH emp_CTE AS ( SELECT ROW_NUMBER() OVER(ORD
WITH emp_CTE AS (
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 1)) AS IdentityId,*
FROM dbo.employee )
SELECT * FROM emp_CTE
这很好用 如果相同的查询是这样写的. WITH emp_CTE AS (
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 1)) AS IdentityId,*
FROM dbo.employee )
SELECT * FROM EMPLOYEES
SELECT * FROM emp_CTE
它给出了一条告诉emp_CTE不存在的消息. 我们有什么方法可以解决这个问题吗? 谢谢 解决方法CTE仅是后续声明的一部分.后续语句可以是单个SELECT / INSERT / UPDATE / DELETE,也可以是复合(带UNION,INTERSECT等) 例如: ;WITH cte1 AS
(
select ...
),cte2 AS
(
select ...
)
SELECT ...
UNION
SELECT ...;
经验法则是范围直到下一个;将会.分号终止任何语句但不幸的是可选. 你上面的失败代码实际上就是这个 ...;
WITH emp_CTE AS (
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 1)) AS IdentityId,*
FROM dbo.employee )
SELECT * FROM EMPLOYEES;
SELECT * FROM emp_CTE;
所以CTE只是在……范围之内……员工; (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Oracle 10g各个帐号的访问权限、登录路径、监控状
- SQL Server差异备份取系统权限的相关软件下载
- SQL – .NET – SqlParameters – AddWithValue
- 程序测试SQL连接字符串?
- sql – 有没有办法在一个查询中查询135个不同的表
- MySQL配置文件my.cnf中文详解附mysql性能优化方法
- sql – 文本(blob)比varchar / nvarchar的效率低
- sql-server – SQL Server 2005:SQL Server身份
- 隐藏在SQL Server字段中的超诡异字符解决过程
- sql – 使用“not in”子查询编写select语句的最
热点阅读
