SQL Server 2008 R2 を使用しており、条件に一致するテーブルに複数の行が存在するかどうかをテストする効率的な方法を見つけようとしています。
それを行う単純な方法は COUNT です。
IF ( SELECT COUNT(*)
FROM Table
WHERE Column = <something>
) > 1 BEGIN
...
END
しかし、これには実際に COUNT を計算する必要があり、無駄です。1つ以上をテストしたいだけです。
私が思いついたのは、TOP 2 の COUNT だけです。
IF ( SELECT COUNT(*)
FROM ( SELECT TOP 2 0 x
FROM Table
WHERE Column = <something>
) x
) > 1 BEGIN
...
END
これは扱いにくく、文書化するにはコメントが必要です。もっと簡潔な方法はありますか?