![](/img/trans.png)
[英]SQL Server 2008 : how to use Subquery/CTE for calculated alias columns
[英]How we can use CTE in subquery in sql server?
我們如何在 SQL Server 的子查詢中使用 CTE?
像:
SELECT id (I want to use CTE here), name FROM table_name
只需在頂部定義您的 CTE 並在子查詢中訪問它?
WITH YourCTE(blubb) AS
(
SELECT 'Blubb'
)
SELECT id,
(SELECT blubb FROM YourCTE),
name
FROM table_name
它不起作用:
select id (I want to use CTE here), name from table_name
不能在子查詢中使用 CTE。
您可以將其視為一種解決方法:
CREATE VIEW MyCTEView AS ..here comes your CTE-Statement.
然后你可以這樣做:
select id (select id from MyCTEView), name from table_name
使用所有 CTE 的 UNION 集創建具有 CTE/多個 CTE 的視圖
CREATE VIEW [dbo].[_vEmployees]
AS
WITH
TEST_CTE(EmployeeID, FirstName, LastName, City, Country)
AS (
SELECT EmployeeID, FirstName, LastName, City, Country FROM Employees WHERE EmployeeID = 4
),
TEST_CTE2
AS (
SELECT EmployeeID, FirstName, LastName, City, Country FROM Employees WHERE EmployeeID = 7
)
SELECT EmployeeID, FirstName, LastName, City, Country FROM TEST_CTE UNION SELECT * FROM TEST_CTE2
GO
現在,將其用於子查詢
SELECT * FROM Employees WHERE EmployeeID IN (SELECT EmployeeID FROM _vEmployees)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.