如何在查询中多次使用相同的参数

时间:2009-08-06 10:00:03

标签: sql sql-server-mobile

我想在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并为它们分配相同的值,但这对我来说有点脏。这个问题有更简洁的解决方法吗?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

答案 2 :(得分: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
相关问题