我正在使用 SQL Server 2008 R2,并且试图找到一种有效的方法来测试匹配条件的表中是否存在多于 1 行。
最简单的方法是 COUNT:
IF ( SELECT COUNT(*)
FROM Table
WHERE Column = <something>
) > 1 BEGIN
...
END
但这需要实际计算一个 COUNT,这是一种浪费。我只想测试超过1。
我想出的唯一方法是对 TOP 2 进行计数:
IF ( SELECT COUNT(*)
FROM ( SELECT TOP 2 0 x
FROM Table
WHERE Column = <something>
) x
) > 1 BEGIN
...
END
这很笨重,需要评论才能记录。有没有更简洁的方法?