在 Microsoft SQL Server 2005 或更高版本中,我想要获取第一行,如果没有匹配的行,则返回一行带有默认值的内容。
SELECT TOP 1 ID,Name
FROM TableName
UNION ALL
SELECT 0,''
ORDER BY ID DESC
这个代码可以正常运行,但是如果表中有数据,它会返回两行,没有数据则返回1行。我希望它始终只返回1行。我认为问题与 EXISTS 有关,但不确定。可能需要这样修改:
SELECT TOP 1 * FROM Contact
WHERE EXISTS(select * from contact)
但如果不存在,则选择0,''