面试题目(sql)

2024-12-26 13:10:46
推荐回答(2个)
回答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

---
以上,希望对你有所帮助。

回答2:

我使用的是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)