面试题目(sql)

程序员面试SQL题目!谁帮忙看看怎么做?本人感激不尽!
SQL试题2
一、
教师号 星期号 是否有课
1 2 有
1 3 有
2 1 有
3 2 有
1 2 有
写一条sql语句让你变为这样的表
教师号 星期一 星期二 星期三
1 2 1
2 1
3 1
各星期下的数字表示:对应的教师在星期几已经排的课数

1、忍不住想说一句,因为第一题中的字段类型是
【日期型】,而各种数据库操作日期型数据有不同的方法,没有一种共通的方法,所以脱离了数据库而言没有一种共通的sql。
2、select
ID,NAME,ADDRESS,PHONE,LOGDATE
from
T
where
ID
in(
select
ID
from
T
group
by
NAME
having
count(*)>1)
order
by
NAME;
3、delete
from
T
where
ID
not
in
(select
min(id)
from
T
group
by
name);
4、update
T
set
T.ADDRESS=(select
E.ADDRESS
from
E
where
E.NAME=T.NAME),
T.PHONE=(select
E.PHONE
from
E
where
E.NAME=T.NAME);
5、这个不同的数据库也有不同的处理方法,不能脱离数据库谈了。
如:SqlServer或者access可以使用
top
oracle可以使用
rownum

---
以上,希望对你有所帮助。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-22
我使用的是MySQL 如下语句:
建表语句:
create table Lessoninfo(
no int,
week int,
isonduty char);

插入数据:略
insert into Lessoninfo values(...............)

SQL查询语句:

select no as '教师号', sum(week=1) as '星期一',sum(week=2) as '星期二',sum(week=3) as '星期三' from Lessoninfo group by no;

/***********************附结果******************

mysql> select no as '教师号', sum(week=1) as '星期一',sum(week=2) as '星期二',su
m(week=3) as '星期三' from Lessoninfo group by no;
+--------+--------+--------+--------+
| 教师号 | 星期一 | 星期二 | 星期三 |
+--------+--------+--------+--------+
| 1 | 0 | 2 | 1 |
| 2 | 1 | 0 | 0 |
| 3 | 0 | 1 | 0 |
+--------+--------+--------+--------+
3 rows in set (0.02 sec)本回答被提问者采纳
相似回答