这是一个老问题,但是我有同样的问题。解决方案非常简单,无需双击:
select top(1) WITH TIES * FROM (
select
id, category, 1 as orderdummy
from #test
where category = @category
union select 0, '', 2) ORDER BY orderdummy
通过“ WITH TIES”,您将获得所有行(所有行都带有1作为“ orderdummy”,因此所有都是平局),或者如果没有结果,则得到默认行。