我可以在TSQL中使用WITH两次来过滤像我的例子的结果集吗?
发布时间:2020-12-12 16:44:10 所属栏目:MsSql教程 来源:网络整理
导读:我需要这样做,但SQL Server 2008不喜欢它.我的查询实际上比这更复杂,我意识到这不是完成我正在做的最好的方法,但我的重点是WITH语句的功能,而不是select和where语句. WITH stuff1 AS ( select name,startdate,id from employees where startdate 0 ) WITH stu
我需要这样做,但SQL Server 2008不喜欢它.我的查询实际上比这更复杂,我意识到这不是完成我正在做的最好的方法,但我的重点是WITH语句的功能,而不是select和where语句.
解决方法我一直都这样做:WITH stuff1 AS ( SELECT name,id FROM employees WHERE startdate > 0 ),stuff2 AS ( SELECT name,id FROM stuff1 ) SELECT * FROM stuff2 WHERE id > 10 据我所知,我在CTE中没有达到极限. 唯一不能做的事情(这将是非常有用的)在单独的SELECT中重用CTE: WITH stuff1 AS ( SELECT name,id FROM stuff1 ) SELECT * FROM stuff2 WHERE id > 10 ; SELECT * FROM stuff2 WHERE id < 10 说.相反,您必须再次复制并粘贴整个CTE链. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |