sql a 表 若包含b表 则a 表 列显示_几道常见的SQL面试题,看你能答对几道?
分享幾道比較常見的SQL面試題,在不看底部參考答案的情況下,看自己能做對幾道。
1.用一條SQL 語句 查詢出每門課都大于80 分的學生姓名
2. 學生表 如下:
刪除除了自動編號不同, 其他都相同的學生冗余信息
3.一個叫 team 的表,里面只有一個字段name, 一共有4 條紀錄,分別是a,b,c,d, 對應四個球對,現在四個球對進行比賽,用一條sql 語句顯示所有可能的比賽組合.
你先按你自己的想法做一下,看結果有我的這個簡單嗎?
4.請用SQL 語句實現:從TestDB 數據表中查詢出所有月份的發生額都比101 科目相應月份的發生額高的科目。請注意:TestDB 中有很多科目,都有1 -12 月份的發生額。
AccID :科目代碼,Occmonth :發生額月份,DebitOccur :發生額。
數據庫名:JcyAudit ,數據集:Select * from TestDB
5.面試題:怎么把這樣一個表
查成這樣一個結果
6. 說明:復制表( 只復制結構, 源表名:a新表名:b)
7. 說明:拷貝表( 拷貝數據, 源表名:a目標表名:b)
8. 說明:顯示文章、提交人和最后回復時間
9. 說明:外連接查詢( 表名1 :a表名2 :b)
10. 說明:日程安排提前五分鐘提醒
11. 說明:兩張關聯表,刪除主表中已經在副表中沒有的信息
12.有兩個表A 和B ,均有key 和value 兩個字段,如果B 的key 在A 中也有,就把B 的value 換為A 中對應的value
這道題的SQL 語句怎么寫?
13.表tab內容:
如果要生成下列結果, 該如何寫sql語句?
14.表中有A B C三列,用SQL語句實現:當A列大于B列時選擇A列否則選擇B列,當B列大于C列時選擇B列否則選擇C列。
15.請取出tb_send表中日期(SendTime字段)為當天的所有記錄?
(SendTime字段為datetime型,包含日期與時間)
16.有一張表table,里面有3個字段:語文,數學,英語。其中有3條記錄
請用一條sql語句查詢出這三條記錄并按以下條件顯示出來(并寫出您的思路): 大于或等于80表示優秀,大于或等于60表示及格,小于60分表示不及格。 顯示格式:
17.從table1,table2中取出如table3所列格式數據,其中table1只展示了部分數據,還有4到12月份的數據未完全展示,table3也只展示了部分數據,還有4到12月份的數據列未完全展示。
table1
table2
結果如下:
table3
18.一個表中的Id有多個記錄,把所有這個id的記錄查出來,并顯示共有多少條記錄數。
19.表形式如下:
想得到如下形式的查詢結果
sql語句怎么寫?
參考答案
1、
--方法一: select distinct name from table where name not in ( select distinct name f rom table where fenshu<=80 ) --方法二: select name from table group by name having min(fenshu)>802、
delete tablename where 自動編號 not in( select min( 自動編號) from tablename group by 學號,姓名,課程編號,課程名稱,分數)3、
select a.name, b.name from team a, team b where a.name < b.name4、
select a.* from TestDB a, ( select Occmonth,max(DebitOccur) Debit101ccur from TestDB where AccID='101' group by Occmonth) b where a.Occmonth=b.Occmonth and a.DebitOccur>b.Debit101ccur5、
select year, (select amount from aaa m where month=1 and m.year=aaa.year) as m1, (select amount from aaa m where month=2 and m.year=aaa.year) as m2, (select amount from aaa m where month=3 and m.year=aaa.year) as m3, (select amount from aaa m where month=4 and m.year=aaa.year) as m4 from aaa group by year6、
--SQL: select * into b from a where 1<>1--ORACLE: create table b As Select * from a where 1=2注:<>(不等于)(SQL Server Compact)
比較兩個表達式。當使用此運算符比較非空表達式時,如果左操作數不等于右操作數,則結果為 TRUE。否則,結果為 FALSE。
7、
insert into b(a, b, c) select d,e,f from a;8、
select a.title,a.username,b.adddate from table a,( select max(adddate) adddate from table where table.title=a.title ) b9、
--SQL Server: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUTER JOIN b ON a.a = b.c--ORACLE: select a.a, a.b, a.c, b.c, b.d, b.f from a ,b where a.a = b.c(+)10、
--SQL Server select * from 日程安排 where datediff('minute',開始時間,getdate())>511、
--SQL Server: Delete from info where not exists ( select * from infobz where info.infid=infobz.infid )12、
update b set b.value=( select a.value from a where a.key=b.key) where b.id in( select b.id from b,a where b.key=a.key);13
create table tmp(Tdate varchar(10),Tresulte nchar(1));insert into tmp values('2019-05-09','勝'); insert into tmp values('2019-05-09','勝'); insert into tmp values('2019-05-09','負'); insert into tmp values('2019-05-09','負'); insert into tmp values('2019-05-10','勝'); insert into tmp values('2019-05-10','負'); insert into tmp values('2019-05-10','負');--方法一 select Tdate '日期', sum(case when Tresulte ='勝' then 1 else 0 end)'勝', sum(case when Tresulte ='負' then 1 else 0 end)'負' from tmp group by Tdate ; --方法二 select N.Tdate '日期',N.勝,M.負 from ( select Tdate ,count(*) '勝' from tmp where Tresulte ='勝' group by Tdate ) N inner join ( select Tdate ,count(*) '負' from tmp where Tresulte ='負' group by Tdate ) M on N.Tdate =M.Tdate ;14
select (case when a>b then a else b end ), (case when b>c then b esle c end) from table_name15
select * from tb where datediff(dd,SendTime,getdate())=016
select (case when 語文>=80 then '優秀'when 語文>=60 then '及格'else '不及格') as 語文, (case when 數學>=80 then '優秀'when 數學>=60 then '及格'else '不及格') as 數學, (case when 英語>=80 then '優秀'when 英語>=60 then '及格'else '不及格') as 英語, from table17
select a.dep, sum(case when b.mon=1 then b.yj else 0 end) as '一月份', sum(case when b.mon=2 then b.yj else 0 end) as '二月份', sum(case when b.mon=3 then b.yj else 0 end) as '三月份', sum(case when b.mon=4 then b.yj else 0 end) as '四月份', sum(case when b.mon=5 then b.yj else 0 end) as '五月份', sum(case when b.mon=6 then b.yj else 0 end) as '六月份', sum(case when b.mon=7 then b.yj else 0 end) as '七月份', sum(case when b.mon=8 then b.yj else 0 end) as '八月份', sum(case when b.mon=9 then b.yj else 0 end) as '九月份', sum(case when b.mon=10 then b.yj else 0 end) as '十月份', sum(case when b.mon=11 then b.yj else 0 end) as '十一月份', sum(case when b.mon=12 then b.yj else 0 end) as '十二月份', from table2 a left join table1 b on a.dep=b.dep18
--方法一 select id,Count(*) from tb group by id having count(*)>1; --方法二 select * from (select count(ID) as count from table group by ID)T where T.count>119
--連接查詢 SELECT b.YEAR, SUM(a.salary) salary FROM hello a, hello b WHERE a.YEAR <= b.YEAR GROUP BY b.YEAR--子查詢 select year , (select sum(salary) from hello as B where B.year<=A.year ) from hello as A覺得不錯,記得幫忙點個贊,謝謝啦~
總結
以上是生活随笔為你收集整理的sql a 表 若包含b表 则a 表 列显示_几道常见的SQL面试题,看你能答对几道?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么串联两个路由器两个路由器如何连接成一
- 下一篇: linux cmake编译源码,linu