SQL 面试题

转载 2007年10月01日 10:08:00

 

http://www.xiejianli.net/mianshiti/276/876.htm(转贴地址)

假设只有一个table,名为pages,有四个字段,id, url,title,body。里面储存了很多网页,网页的url地址,title和网页的内容,然后你用一个sql查询将url匹配的排在最前,title匹配的其次,body匹配最后,没有任何字段匹配的,不返回。

就是上面这道面试题,让我想了一个下午,在网上找资料,最后用下面方法实现


SELECT *
FROM page where url like '%baidu%' or title like '%baidu%' or like ''
ORDER BY CHARINDEX('baidu', url) DESC, CHARINDEX('baidu', title) DESC,
      CHARINDEX('baidu', body) DESC

但我感觉这种方法并不是最简单的,后来把这个方法发给面试的人,他给我了一种更简单方法,只要用基本的Sql语句就可以实现。代码如下

 

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面试题java

  • 2017年11月06日 20:53
  • 58KB
  • 下载

SQL面试题解析

  • 2014年03月11日 13:18
  • 20KB
  • 下载

SQL数据库面试题以及答案

Student(stuId,stuName,stuAge,stuSex) 学生表       stuId:学号;stuName:学生姓名;stuAge:学生年龄;stuSex:学生性别 Course...

sql面试题.。

  • 2013年08月23日 17:31
  • 3KB
  • 下载

SQL经典面试题及答案

  • 2016年11月28日 11:47
  • 135KB
  • 下载

部分常见ORACLE面试题以及SQL注意事项(更新......)

部分常见ORACLE面试题以及SQL注意事项   一、表的创建: 一个通过单列外键联系起父表和子表的简单例子如下: CREATE TABLE parent(id INT NOT NULL, ...

极详细数据库面试题(SQL+ORACLE)

  • 2012年11月23日 17:43
  • 9.28MB
  • 下载

数据库面试题(SQL+ORACLE)

  • 2011年12月15日 15:21
  • 312KB
  • 下载

一道SQL面试题(行列互换)

转载:http://blog.csdn.net/jackfrued/article/details/45021897 有一个SQL题在面试中出现的概率极高,最近有学生出去面试仍然会遇到这样的题目...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL 面试题
举报原因:
原因补充:

(最多只允许输入30个字)