SELECT TOP数量不足时再使用UNION补充数据量是否能实现?

netDust_cv 2011-04-17 12:01:48
大概是这样的一个需求,假如使用某一关键字搜索相关文章,要返回100条数据,如果这个关键字查询后数据不足100条时,便使用另一关键字进行搜索数量补充?能否实现呢?
...全文
103 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gw6328 2011-04-18
  • 打赏
  • 举报
回复
select top 2 from
(select * from t where 条件1
union all
select * from t where 条件2
union all
select * from t where 条件3
)
gogodiy 2011-04-18
  • 打赏
  • 举报
回复
楼上的方法好。
--小F-- 2011-04-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 netdust_cv 的回复:]
比如,三个关键字
A、B、C
与A匹配的关键字排在前,B的次之,C的最后。总共的查询记录50条。
[/Quote]

order by
case when col like '%a' then 1
when col like 'b%' then 2
when col like 'c%' then 3 end
xiao_hn 2011-04-18
  • 打赏
  • 举报
回复
二楼正解
Rotel-刘志东 2011-04-17
  • 打赏
  • 举报
回复
select top 100 * from tb
declare @rownum int
if @@rowcount<100
select column1 from tb
union
select column2 from tb where @rownum=(100-@@rowcount)
rucypli 2011-04-17
  • 打赏
  • 举报
回复
那就直接union十行 再取top 10
王向飞 2011-04-17
  • 打赏
  • 举报
回复
select  top 100  * from t2
if @@ROWCOUNT <100
。。。。。
netDust_cv 2011-04-17
  • 打赏
  • 举报
回复
有没有高手指点下,谢谢了。
netDust_cv 2011-04-17
  • 打赏
  • 举报
回复
比如,三个关键字
A、B、C
与A匹配的关键字排在前,B的次之,C的最后。总共的查询记录50条。
netDust_cv 2011-04-17
  • 打赏
  • 举报
回复
对于这样的需求怎么样会提高效率呢?
vivai2010 2011-04-17
  • 打赏
  • 举报
回复
先union
然后再top

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧