3

我想在 SqlCE 数据库上运行与此类似的查询:

SELECT t.Field1, t.Field2
FROM MyTable t
WHERE t.Field1 = @Param
UNION ALL
SELECT t2.Field1, t2.Field2
FROM MyOtherTable t2
WHERE t2.Field1 = @Param

但是,运行它会导致错误消息:

不允许重复的参数名称。[参数名称=@Param]

一种解决方法当然是定义@Param1@Param2分配它们相同的值,但这对我来说感觉有点脏。这个问题有更干净的解决方法吗?

4

3 回答 3

1
SELECT * FROM (
SELECT t.Field1, t.Field2
FROM MyTable t
UNION ALL
SELECT t2.Field1, t2.Field2
FROM MyOtherTable t2
) sub
WHERE sub.Field1 = @Param
于 2009-08-06T11:25:02.540 回答
0

我从未使用过 SQL CE,但也许这会起作用:

DECLARE @P int

SET @P = @Param

SELECT t.Field1, t.Field2
FROM MyTable t
WHERE t.Field1 = @P
UNION ALL
SELECT t2.Field1, t2.Field2
FROM MyOtherTable t2
WHERE t2.Field1 = @P
于 2009-08-06T10:29:18.533 回答
0

只将参数添加到参数集合一次。您可以在查询中使用它多少次。

于 2009-08-06T10:15:20.137 回答