[英]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.