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

有3个表S,C,SC S(SNO,SNAME)代表(学号,姓名) C(CNO,CNAME,CTEACHER)代表(课号,课名,教师) SC(SNO,CNO,SCGRADE)代表(学号...
  • zsw12013
  • zsw12013
  • 2016年04月10日 00:37
  • 826

【笔试/面试】SQL 经典面试题

基本概念 (1)any/all,构成 where 子句的条件判断,any:表示或(or)的概念,all:则表示与(and)的概念,这两个关键字的出现是为了语句的简化; (2)先分组再做聚合,逻辑上也应...
  • lanchunhui
  • lanchunhui
  • 2016年04月05日 23:17
  • 8583

sql常见面试题 (我觉得太好了)

Sql常见面试题 受用了 1. 用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name   kecheng   fenshu 张三     语文       81 张三    ...
  • u012467492
  • u012467492
  • 2015年07月07日 15:29
  • 91531

SQL常见的一些面试题(太有用啦)

SQL常见面试题 1.用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name   kecheng   fenshu 张三    语文       81 张三     数学   ...
  • a379850992
  • a379850992
  • 2017年02月18日 09:54
  • 6055

SQL常见面试题

1.用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name   kecheng   fenshu 张三    语文       81 张三     数学       75 李四     语...
  • kaaosidao
  • kaaosidao
  • 2017年10月09日 22:24
  • 375

java sql常见面试题

为管理学员培训信息,建立3个表:   S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄   C (C#,CN ) C#,CN 分别代表...
  • timliang18601860
  • timliang18601860
  • 2011年08月27日 16:09
  • 2251

数据库优化面试题

优化1——数据库优化面试题 1.实践中如何优化MySQL 1) SQL语句及索引的优化 2) 数据库表结构的优化...
  • a724888
  • a724888
  • 2017年03月08日 19:32
  • 9629

Oracle SQL语句面试题一

以下是Oracle 数据库中hr 用户下面的表。下面的sql语句是以hr身份进入的。若是以system 身份进入需要在表名前面加hr. (如hr.employees)。 以下是表的基本结构 emp...
  • chenfengbao
  • chenfengbao
  • 2017年06月13日 16:21
  • 354

SQL常见面试题<一>

sql常见面试题 sql理论题 1.触发器的作用?     答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从...
  • QQQQQQ654
  • QQQQQQ654
  • 2016年09月04日 03:07
  • 505

SQL经典面试题集锦

1、问题背景     (1)学生表(学号,姓名,年龄,性别)             student(S#,Sname,Sage,Ssex)     (2)课程表(课程编号,课程名称,教师编号)   ...
  • you23hai45
  • you23hai45
  • 2016年02月02日 18:48
  • 1877
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL 面试题
举报原因:
原因补充:

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