某公司的SQL 面试题目
1-10题目答案都是一句话
1、 请写出SQL语句计算今天距离2005元旦的分钟数。
答案:
(SQL入门题目,不会做的话,把书从头再看十遍吧)
2、 请一句SQL写出:如果person(personname,deptname) 表中没有 “财务部”的“张三” ,那么请增加该人员。
3、 请取出表 test (id identity(int,1,1)) 的第三条记录。
4、 有表
test
Row | Val |
1 | 101 |
1 | 102 |
2 | 1 |
请写SQL语句将表test 的内容显示为下边内容
Row | Val |
1 | 101 |
1 | 102 |
2 | 101 |
2 | 102 |
答案:
5、 计算库存结余
test
Inv | inouttype | Iquantity |
001 | in | 300 |
001 | out | 200 |
002 | in | 50 |
答案:
6、 请将表 test
Cus | inv | Money |
北京 | 苹果 | 100 |
北京 | 李子 | 200 |
上海 | 苹果 | 400 |
转变成
Cus | 苹果 | 李子 |
北京 | 100 | 200 |
上海 | 400 | 0 |
|
|
|
答案:
更好的答案。。。
7、 有表 test
Personcode | Personname |
001 | Anny |
002 | Liszt |
003 | Devy |
写一个过程
create procedure getselperson(@s varchar(200))
begin
end;
传入参数’001,002’,返回表
Iid | personcode | Personname |
1 | 001 | Anny |
2 | 002 | liszt |
8、 请写SQL语句更新表test 中issingle
person | Friend | Issingle |
anny | Liszt | Null |
Liszt | Anny | Null |
devy | Keven | Null |
更新后的结果是:
Person | Friend | Issingle |
Anny | Liszt | 0 |
Liszt | Anny | 0 |
Devy | Keven | 1 |
答案:
(提示:自连接)
9、 请写SQL语句将下表test
person | ttime | Iotype |
001 | 8:00 | 1 |
001 | 12:00 | 2 |
001 | 13:00 | 1 |
001 | 17:00 | 2 |
002 | 8:00 | 1 |
002 | 12:00 | 2 |
转换成表
Wpid | person | in | Out |
1 | 001 | 8:00 | 12:00 |
2 | 001 | 13:00 | 17:00 |
3 | 002 | 8:00 | 12:00 |
答案:
10、 有表test
Personcode | ttime | Iotype |
001 | 8:00 | 1 |
001 | 8:05 | 1 |
001 | 12:00 | 2 |
请写SQL语句将两行IOTYPE相同,时间间隔不足10分钟的第二条记录提取出来。
答案:
(提示:超打分析)
附加题(如有余力,可以做):
11、 将表TEST
SEQ | QTY | IO |
1 | 100 | 1 |
2 | 120 | 1 |
3 | 130 | 1 |
4 | 60 | -1 |
5 | 90 | -1 |
转换成表
Seq | qty | Left |
1 | 100 | 0 |
2 | 120 | 70 |
3 | 130 |
|
(提示:此例是先进先出法的例子)
12、 有表TEST
ID | FATHER | CHIELD |
1 | A | A1 |
2 | A | A2 |
3 | A | B |
4 | B | B1 |
5 | B | B2 |
转成表
COLDE | CLASS | ISEND |
A | 1 | 0 |
B | 2 | 0 |
A1 | 2 | 1 |
A2 | 2 | 1 |
B1 | 3 | 1 |
B2 | 3 | 1 |
|
|
|
(提示:这个是BOM算法的入门例子)