单独使用交叉连接

时间:2014-08-13 18:10:53

标签: sql sql-server sql-server-2008 tsql

我正在尝试这句话:

 Declare @Param1 int = 0
 SELECT @Param1,T.N
  CROSS JOIN (VALUES(0),(1),(2)) as T(N)

返回此错误:

消息156,级别15,状态1 关键字' CROSS'

附近的语法不正确

当我首先使用FROM时,我似乎只能使用此交叉连接,而不是单独使用此交叉连接?

2 个答案:

答案 0 :(得分:1)

我猜你这样做的时候有效:

SELECT @Param1,T.N
FROM (VALUES(0),(1),(2)) as T(N)

答案 1 :(得分:1)

是的,你不能在from语句之外进行连接。使用table var for param并加入它?

Declare @Param1 table(param1 int);
insert into @param1 values(0)
 SELECT *
 from @Param1
CROSS JOIN (VALUES(0),(1),(2)) as T(N);