簡體   English   中英

交叉申請不適用於SQL Server 2005

[英]Cross apply not working in SQL Server 2005

我有一個交叉應用代碼,該代碼在SQL Server 2008版中可以正常運行,但是不幸的是,同一代碼在SQL Server 2005版中不能正常工作。以下是代碼:

SELECT YT.ID,
       YT.Product
       V.C AS Flag
FROM YourTable YT
     CROSS APPLY (VALUES('A'),('B'),('C')) V(C);

在SQLServer 2005版本中, values部分出現錯誤

錯誤:

Msg 156, Level 15, State 1, Procedure SP_xxx, Line 69
Incorrect syntax near the keyword 'Values'.

不知道出了什么問題。

如果我沒記錯的話, 表值構造函數是在2008年引入的

這是UNION的方法

select *
from (select 1 as a) a
cross apply (select 'A' as X union select 'B' union select 'C') x

CTE

with cte as(
select 'A' as X union select 'B' union select 'C')

select *
from (select 1 as a) a
cross apply cte 

但是請注意, SQL Server 2005支持已在2016年結束。因此,現在是嘗試升級的好時機:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM