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

私はSQLCEを使用したことがありませんが、おそらくこれでうまくいくでしょう。

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

パラメータをパラメータ コレクションに 1 回だけ追加します。クエリで何回でも使用できます。

于 2009-08-06T10:15:20.137 に答える