`
yuanlg
  • 浏览: 78082 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

今天的一个sql面试题

 
阅读更多

今天的一个sql面试题当时没做出来,后来从网上查到的解决方法及相关资料

 

表结构:表名:page

             id  int

             url varchar

             title varchar

             body varchar

用一个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来排序,这样实现真的好简单。其实这都考验我们对Sql的编成思想。
 
参考学习:
 
有空还得看看sql基础啊
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics