SQL Server 仅返回单行或 null

fea*_*net 4 sql t-sql sql-server

我有一个 SQL 查询,我只想返回 1 行。如果有多行,我想返回 null。

我想我可以用类似的东西来做

SELECT whatever FROM MyTable
 WHERE something = myQuery
   AND ( COUNT(SELECT whatever FROM MyTable
             WHERE something = myQuery) = 1)
Run Code Online (Sandbox Code Playgroud)

但这非常令人讨厌,我想知道是否有更简洁的方法。

RPM*_*984 6

你不能这样做吗:

SELECT whatever FROM
    (
       SELECT whatever, COUNT(*) As NumRecords
       FROM MyTable
       WHERE something = myQuery
       GROUP BY whatever
       HAVING NumRecords = 1
    )
Run Code Online (Sandbox Code Playgroud)