Làm thế nào chúng ta có thể sử dụng CTE trong truy vấn phụ trong máy chủ sql?Làm thế nào chúng ta có thể sử dụng CTE trong truy vấn phụ trong máy chủ sql?
như ..
chọn id (i muốn sử dụng CTE ở đây), tên từ tên_bảng
Làm thế nào chúng ta có thể sử dụng CTE trong truy vấn phụ trong máy chủ sql?Làm thế nào chúng ta có thể sử dụng CTE trong truy vấn phụ trong máy chủ sql?
như ..
chọn id (i muốn sử dụng CTE ở đây), tên từ tên_bảng
Chỉ cần xác định CTE của bạn trên đầu và truy cập nó trong subquery?
WITH YourCTE(blubb) AS
(
SELECT 'Blubb'
)
SELECT id,
(SELECT blubb FROM YourCTE),
name
FROM table_name
Điều này không thể giảm thiểu truy vấn con tương quan. – Vadzim
Nó không làm việc:
select id (I want to use CTE here), name from table_name
Nó không thể sử dụng CTE trong các truy vấn phụ.
Bạn có thể nhận ra nó như là một công trình xung quanh:
CREATE VIEW MyCTEView AS ..here comes your CTE-Statement.
Sau đó, bạn có thể làm điều này:
select id (select id from MyCTEView), name from table_name
Một hơi muộn nhưng đối với bất cứ ai tìm kiếm này, tùy chọn khác là để tạo ra một hàm có chứa CTE và sau đó bạn có thể sử dụng hàm đó trong mệnh đề trường của bạn.
create function dbo.myCTEFunction(@ID int) returns varchar(100) as
begin
declare @Result varchar(100)
-- fill the variable with your CTE here...
return @Result
end;
select t.id,
(select dbo.myCTEFunction(t.id)),
t.name
from table_name t
Sigh. Tại sao không cung cấp thêm một số ngữ cảnh? Ví dụ .... bạn đang cố gắng đạt được điều gì? Tại sao bạn nghĩ rằng bạn muốn sử dụng một CTE ở đây? Bạn đã thử cái gì? Tại sao nó không hoạt động? vv –