悟心

成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成。 上人生的旅途罢。前途很远,也很暗。然而不要怕。不怕的人的面前才有路。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  93 随笔 :: 1 文章 :: 103 评论 :: 0 Trackbacks
假设只有一个table,名为pages,有四个字段,id, url,title,body。里面储存了很多网页,网页的url地址,title和网页的内容,然后你用一个sql查询将url匹配的排在最前, title匹配的其次,body匹配最后,没有任何字段匹配的,不返回。
代码如下

select a.[id],a.mark from 

select [page].[id],100 as mark from [page] where [page].[url] like '%baidu%' 
union 
select [page].[id],50 as mark from [page] where [page].[title] like '%baidu%' 
union 
select [page].[id],10 as mark from [page] where [page].[body] like '%baidu%' 
as a  order by mark desc  


用union 实现联合查询,在每个查询语句中定义一个临时变量mark 并给mark赋值,在最后的输出时采用mark来排序,这样实现,非常简单,我感觉这题更多考研我们的编程思想。
posted on 2010-06-24 00:43 艾波 阅读(299) 评论(0)  编辑  收藏 所属分类: SQL

只有注册用户登录后才能发表评论。


网站导航: