sqlserver面試題
1. 50分求sql題
1.一道SQL語句面試題,關於group by
表內容:
2005-05-09 勝
2005-05-09 勝
2005-05-09 負
2005-05-09 負
2005-05-10 勝
2005-05-10 負
2005-05-10 負
如果要生成下列結果, 該如何寫sql語句?
勝 負
2005-05-09 2 2
2005-05-10 1 2
------------------------------------------
create table #tmp(rq varchar(10),shengfu nchar(1))
insert into #tmp values('2005-05-09','勝')
insert into #tmp values('2005-05-09','勝')
insert into #tmp values('2005-05-09','負')
insert into #tmp values('2005-05-09','負')
insert into #tmp values('2005-05-10','勝')
insert into #tmp values('2005-05-10','負')
insert into #tmp values('2005-05-10','負')
select * from #tmp
select rq, shengfu from #tmp group by rq,shengfu
select rq, shengfu from #tmp group by shengfu,rq
select rq, shengfu,sum(shengfu) from #tmp group by shengfu,rq
1)select rq, sum(case when shengfu='勝' then 1 else 0 end)'勝',sum(case when shengfu='負' then 1 else 0 end)'負' from #tmp group by rq
2) select N.rq,N.勝,M.負 from (
select rq,勝=count(*) from #tmp where shengfu='勝'group by rq)N inner join
(select rq,負=count(*) from #tmp where shengfu='負'group by rq)M on N.rq=M.rq
3)select a.col001,a.a1 勝,b.b1 負 from
(select col001,count(col001) a1 from temp1 where col002='勝' group by col001) a,
(select col001,count(col001) b1 from temp1 where col002='負' group by col001) b
where a.col001=b.col001
2.請教一個面試中遇到的SQL語句的查詢問題
表中有A B C三列,用SQL語句實現:當A列大於B列時選擇A列否則選擇B列,當B列大於C列時選擇B列否則選擇C列。
------------------------------------------
select (case when a>b then a else b end ),
(case when b>c then b esle c end)
from table_name
3.面試題:一個日期判斷的sql語句?
請取出tb_send表中日期(SendTime欄位)為當天的所有記錄?(SendTime欄位為datetime型,包含日期與時間)
------------------------------------------
select * from tb where datediff(dd,SendTime,getdate())=0
4.有一張表,裡面有3個欄位:語文,數學,英語。其中有3條記錄分別表示語文70分,數學80分,英語58分,請用一條sql語句查詢出這三條記錄並按以下條件顯示出來(並寫出您的思路):
大於或等於80表示優秀,大於或等於60表示及格,小於60分表示不及格。
顯示格式:
語文 數學 英語
及格 優秀 不及格
------------------------------------------
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 table
5.在sqlserver2000中請用sql創建一張用戶臨時表和系統臨時表,裡麵包含兩個欄位ID和IDValues,類型都是int型,並解釋下兩者的區別?
------------------------------------------
用戶臨時表:create table #xx(ID int, IDValues int)
系統臨時表:create table ##xx(ID int, IDValues int)
區別:
用戶臨時表只對創建這個表的用戶的Session可見,對其他進程是不可見的.
當創建它的進程消失時這個臨時表就自動刪除.
全局臨時表對整個SQL Server實例都可見,但是所有訪問它的Session都消失的時候,它也自動刪除.
6.sqlserver2000是一種大型資料庫,他的存儲容量只受存儲介質的限制,請問它是通過什麼方式實現這種無限容量機制的。
------------------------------------------
它的所有數據都存儲在數據文件中(*.dbf),所以只要文件夠大,SQL Server的存儲容量是可以擴大的.
SQL Server 2000 資料庫有三種類型的文件:
主要數據文件
主要數據文件是資料庫的起點,指向資料庫中文件的其它部分。每個資料庫都有一個主要數據文件。主要數據文件的推薦文件擴展名是 .mdf。
次要數據文件
次要數據文件包含除主要數據文件外的所有數據文件。有些資料庫可能沒有次要數據文件,而有些資料庫則有多個次要數據文件。次要數據文件的推薦文件擴展名是 .ndf。
日誌文件
日誌文件包含恢復資料庫所需的所有日誌信息。每個資料庫必須至少有一個日誌文件,但可以不止一個。日誌文件的推薦文件擴展名是 .ldf。
7.請用一個sql語句得出結果
從table1,table2中取出如table3所列格式數據,注意提供的數據及結果不準確,只是作為一個格式向大家請教。
如使用存儲過程也可以。
table1
月份mon 部門dep 業績yj
-------------------------------
一月份 01 10
一月份 02 10
一月份 03 5
二月份 02 8
二月份 04 9
三月份 03 8
table2
部門dep 部門名稱dname
--------------------------------
01 國內業務一部
02 國內業務二部
03 國內業務三部
04 國際業務部
table3 (result)
部門dep 一月份 二月份 三月份
--------------------------------------
01 10 null null
02 10 8 null
03 null 5 8
04 null null 9
------------------------------------------
1)
select a.部門名稱dname,b.業績yj as '一月份',c.業績yj as '二月份',d.業績yj as '三月份'
from table1 a,table2 b,table2 c,table2 d
where a.部門dep = b.部門dep and b.月份mon = '一月份' and
a.部門dep = c.部門dep and c.月份mon = '二月份' and
a.部門dep = d.部門dep and d.月份mon = '三月份' and
2)
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.dep
8.華為一道面試題
一個表中的Id有多個記錄,把所有這個id的記錄查出來,並顯示共有多少條記錄數。
------------------------------------------
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>1
實在沒空發郵件。。。在這收吧
2. 今天去面試,有一道題問我,2個G的文件,如何讀取到資料庫中去
用Image類型,可存數據流。
但2個G,如果考慮實際效率,可能要分包來放,如果直接寫到一個欄位中,可能會sql執行超時。
我的答案可能會是:
1. 看文件類型選擇是否先壓縮,因為壓縮會占很長的時間,要看所花的時間和節省下的空間是否值得。
2. 將文件按一定大小拆成多個小的文件,根據網速和伺服器性能,決定拆後文件的大小蠢鋒,決定的依據是在資料庫高並發情況下執行每個單獨的SQL不超過30秒為宜。
3. 將每個小的文件按一定規則存入數亂檔段據庫中的一個表的多筆記錄中,image類型的欄位,表要建文件名、拆包順序之類的欄位,方便讀取後拼成原嘩譽來的文件。
3. 惠普資料庫類筆試題和面試題答案
惠普招聘常考的筆試題目主要考資料庫相關知識:
1.Hashtable和HashMap有什麼區別?
2.你怎麼理解MVC模式?
3.SQLServer中左聯接查詢用left join,Oracle中用什麼?
4.SQLServer中的資料庫,在Oracle中對應的是什麼?
5.如果SQLServer中有兩個資料庫,那麼讓你把這兩個資料庫對應到Oracle中,你應該怎麼做?
6.有兩個頁面a.jsp和b.jsp,要從a.jsp傳值到b.jsp有幾種方法?分別是什麼?
7.有三個頁面,a.jsp,b.jsp和c.jsp,流程是:a.jsp->b.jsp->c.jsp,其中a.jsp中提交的數據要在c.jsp中訪問,用最簡單的方法怎麼做?注意不能放在session里
7.jsp和servlet有什麼區別?
8.映射是什麼?你怎麼理解映射?
9.Hibernate中:不看資料庫,不看XML文件,不看查詢語句,怎麼樣能知道表結構?
10.SQLServer支持集群嗎?
11.為什麼要用MVC?我從JSP頁面直接訪問資料庫不是更簡單嗎,為什麼非要先提交到控制器再做處理?
12.在struts中,假設有一個對資料庫中一張表的增刪改查的操作,你是寫一個action還是寫多個action?為什麼?
13.struts中的actionform有什麼好處?
14.用過Hibernate嗎,用它有什麼好處?
15.通常所說的web應用程序分3層,即MVC,如果我想分4層,應該怎麼分?
4. SQL查詢面試題與答案
SQL查詢面試題與答案
SQL語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。下面是我搜集的SQL查詢面試題與答案,歡迎大家閱讀。
SQL查詢面試題與答案一
1.一道SQL語句面試題,關於group by表內容:
2005-05-09 勝
2005-05-09 勝
2005-05-09 負
2005-05-09 負
2005-05-10 勝
2005-05-10 負
2005-05-10 負
如果要生成下列結果, 該如何寫sql語句?
勝 負
2005-05-09 2 2
2005-05-10 1 2
------------------------------------------
create table #tmp(rq varchar(10),shengfu nchar(1))
insert into #tmp values('2005-05-09','勝')
insert into #tmp values('2005-05-09','勝')
insert into #tmp values('2005-05-09','負')
insert into #tmp values('2005-05-09','負')
insert into #tmp values('2005-05-10','勝')
insert into #tmp values('2005-05-10','負')
insert into #tmp values('2005-05-10','負')
1)select rq, sum(case when shengfu='勝' then 1 else 0 end)'勝',sum(case when shengfu='負' then 1 else 0 end)'負' from #tmp group by rq
2) select N.rq,N.勝,M.負 from (
select rq,勝=count(*) from #tmp where shengfu='勝'group by rq)N inner join
(select rq,負=count(*) from #tmp where shengfu='負'group by rq)M on N.rq=M.rq
3)select a.col001,a.a1 勝,b.b1 負 from
(select col001,count(col001) a1 from temp1 where col002='勝' group by col001) a,
(select col001,count(col001) b1 from temp1 where col002='負' group by col001) b
where a.col001=b.col001
2.請教一個面試中遇到的SQL語句的查詢問題
表中有A B C三列,用SQL語句實現:當A列大於B列時選擇A列否則選擇B列,當B列大於C列時選擇B列否則選擇C列。
------------------------------------------
select (case when a>b then a else b end ),
(case when b>c then b esle c end)
from table_name
3.面試題:一個日期判斷的sql語句?
請取出tb_send表中日期(SendTime欄位)為當天的所有記錄?(SendTime欄位為datetime型,包含日期與時間)
------------------------------------------
select * from tb where datediff(dd,SendTime,getdate())=0
4.有一張表,裡面有3個欄位:語文,數學,英語。其中有3條記錄分別表示語文70分,數學80分,英語58分,請用一條sql語句查詢出這三條記錄並按以下條件顯示出來(並寫出您的思路):
大於或等於80表示優秀,大於或等於60表示及格,小於60分表示不及格。
顯示格式:
語文 數學 英語
及格 優秀 不及格
------------------------------------------
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 table
5.在sqlserver2000中請用sql創建一張用戶臨時表和系統臨時表,裡麵包含兩個欄位ID和IDValues,類型都是int型,並解釋下兩者的區別?
------------------------------------------
用戶臨時表:create table #xx(ID int, IDValues int)
系統臨時表:create table ##xx(ID int, IDValues int)
區別:
用戶臨時表只對創建這個表的用戶的Session可見,對其他進程是不可見的.
當創建它的進程消失時這個臨時表就自動刪除.
全局臨時表對整個SQL Server實例都可見,但是所有訪問它的Session都消失的時候,它也自動刪除.
6.sqlserver2000是一種大型資料庫,他的`存儲容量只受存儲介質的限制,請問它是通過什麼方式實現這種無限容量機制的。
------------------------------------------
它的所有數據都存儲在數據文件中(*.dbf),所以只要文件夠大,SQL Server的存儲容量是可以擴大的.
SQL Server 2000 資料庫有三種類型的文件:
主要數據文件
主要數據文件是資料庫的起點,指向資料庫中文件的其它部分。每個資料庫都有一個主要數據文件。主要數據文件的推薦文件擴展名是 .mdf。
次要數據文件
次要數據文件包含除主要數據文件外的所有數據文件。有些資料庫可能沒有次要數據文件,而有些資料庫則有多個次要數據文件。次要數據文件的推薦文件擴展名是 .ndf。
日誌文件
日誌文件包含恢復資料庫所需的所有日誌信息。每個資料庫必須至少有一個日誌文件,但可以不止一個。日誌文件的推薦文件擴展名是 .ldf。
7.請用一個sql語句得出結果
從table1,table2中取出如table3所列格式數據,注意提供的數據及結果不準確,只是作為一個格式向大家請教。
如使用存儲過程也可以。
table1
月份mon 部門dep 業績yj
-------------------------------
一月份 01 10
一月份 02 10
一月份 03 5
二月份 02 8
二月份 04 9
三月份 03 8
table2
部門dep 部門名稱dname
--------------------------------
01 國內業務一部
02 國內業務二部
03 國內業務三部
04 國際業務部
table3 (result)
部門dep 一月份 二月份 三月份
--------------------------------------
01 10 null null
02 10 8 null
03 null 5 8
04 null null 9
------------------------------------------
1)
select a.部門名稱dname,b.業績yj as '一月份',c.業績yj as '二月份',d.業績yj as '三月份'
from table1 a,table2 b,table2 c,table2 d
where a.部門dep = b.部門dep and b.月份mon = '一月份' and
a.部門dep = c.部門dep and c.月份mon = '二月份' and
a.部門dep = d.部門dep and d.月份mon = '三月份' and
2)
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.dep
8.華為一道面試題
一個表中的Id有多個記錄,把所有這個id的記錄查出來,並顯示共有多少條記錄數。
------------------------------------------
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>1
SQL查詢面試題與答案二
1、查詢不同老師所教不同課程平均分從高到低顯示
SELECT max(Z.T#) AS 教師ID,MAX(Z.Tname) AS 教師姓名,C.C# AS 課程ID,MAX(C.Cname) AS 課程名稱,AVG(Score) AS 平均成績
FROM SC AS T,Course AS C ,Teacher AS Z
where T.C#=C.C# and C.T#=Z.T#
GROUP BY C.C#
ORDER BY AVG(Score) DESC
2、查詢如下課程成績第 3 名到第 6 名的學生成績單:企業管理(001),馬克思(002),UML (003),資料庫(004)
[學生ID],[學生姓名],企業管理,馬克思,UML,資料庫,平均成績
SELECT DISTINCT top 3
SC.S# As 學生學號,
Student.Sname AS 學生姓名 ,
T1.score AS 企業管理,
T2.score AS 馬克思,
T3.score AS UML,
T4.score AS 資料庫,
ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 總分
FROM Student,SC LEFT JOIN SC AS T1
ON SC.S# = T1.S# AND T1.C# = '001'
LEFT JOIN SC AS T2
ON SC.S# = T2.S# AND T2.C# = '002'
LEFT JOIN SC AS T3
ON SC.S# = T3.S# AND T3.C# = '003'
LEFT JOIN SC AS T4
ON SC.S# = T4.S# AND T4.C# = '004'
WHERE student.S#=SC.S# and
ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)
NOT IN
(SELECT
DISTINCT
TOP 15 WITH TIES
ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)
FROM sc
LEFT JOIN sc AS T1
ON sc.S# = T1.S# AND T1.C# = 'k1'
LEFT JOIN sc AS T2
ON sc.S# = T2.S# AND T2.C# = 'k2'
LEFT JOIN sc AS T3
ON sc.S# = T3.S# AND T3.C# = 'k3'
LEFT JOIN sc AS T4
ON sc.S# = T4.S# AND T4.C# = 'k4'
ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC);
3、統計列印各科成績,各分數段人數:課程ID,課程名稱,[100-85],[85-70],[70-60],[ <60]
SELECT SC.C# as 課程ID, Cname as 課程名稱
,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85]
,SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70]
,SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60]
,SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS [60 -]
FROM SC,Course
where SC.C#=Course.C#
GROUP BY SC.C#,Cname;
4、查詢學生平均成績及其名次
SELECT 1+(SELECT COUNT( distinct 平均成績)
FROM (SELECT S#,AVG(score) AS 平均成績
FROM SC
GROUP BY S#
) AS T1
WHERE 平均成績 > T2.平均成績) as 名次,
S# as 學生學號,平均成績
FROM (SELECT S#,AVG(score) 平均成績
FROM SC
GROUP BY S#
) AS T2
ORDER BY 平均成績 desc;
5、查詢各科成績前三名的記錄:(不考慮成績並列情況)
SELECT t1.S# as 學生ID,t1.C# as 課程ID,Score as 分數
FROM SC t1
WHERE score IN (SELECT TOP 3 score
FROM SC
WHERE t1.C#= C#
ORDER BY score DESC
)
ORDER BY t1.C#;
6、查詢每門課程被選修的學生數
select c#,count(S#) from sc group by C#;
7、查詢出只選修了一門課程的全部學生的學號和姓名
select SC.S#,Student.Sname,count(C#) AS 選課數
from SC ,Student
where SC.S#=Student.S# group by SC.S# ,Student.Sname having count(C#)=1;
8、查詢課程編號“002”的成績比課程編號“001”課程低的所有同學的學號、姓名;
Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2
from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2
9、查詢所有課程成績小於60分的同學的學號、姓名;
select S#,Sname
from Student
where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);
10、查詢沒有學全所有課的同學的學號、姓名;
select Student.S#,Student.Sname
from Student,SC
where Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course);
11、查詢至少有一門課與學號為“1001”的同學所學相同的同學的學號和姓名;
select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001';
12、查詢至少學過學號為“001”同學所有一門課的其他同學學號和姓名;
select distinct SC.S#,Sname
from Student,SC
where Student.S#=SC.S# and C# in (select C# from SC where S#='001');
13、把“SC”表中“葉平”老師教的課的成績都更改為此課程的平均成績;
update SC set score=(select avg(SC_2.score)
from SC SC_2
where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='葉平');
14、查詢和“1002”號的同學學習的課程完全相同的其他同學學號和姓名;
select S# from SC where C# in (select C# from SC where S#='1002')
group by S# having count(*)=(select count(*) from SC where S#='1002');
15、刪除學習“葉平”老師課的SC表記錄;
Delect SC
from course ,Teacher
where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='葉平';
16、向SC表中插入一些記錄,這些記錄要求符合以下條件:沒有上過編號“003”課程的同學學號、2、
號課的平均成績;
Insert SC select S#,'002',(Select avg(score)
from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002');
17、按平均成績從高到低顯示所有學生的“資料庫”、“企業管理”、“英語”三門的課程成績,按如下形式顯示: 學生ID,,資料庫,企業管理,英語,有效課程數,有效平均分
SELECT S# as 學生ID
,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 資料庫
,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企業管理
,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英語
,COUNT(*) AS 有效課程數, AVG(t.score) AS 平均成績
FROM SC AS t
GROUP BY S#
ORDER BY avg(t.score)
18、查詢各科成績最高和最低的分:以如下形式顯示:課程ID,最高分,最低分
SELECT L.C# As 課程ID,L.score AS 最高分,R.score AS 最低分
FROM SC L ,SC AS R
WHERE L.C# = R.C# and
L.score = (SELECT MAX(IL.score)
FROM SC AS IL,Student AS IM
WHERE L.C# = IL.C# and IM.S#=IL.S#
GROUP BY IL.C#)
AND
R.Score = (SELECT MIN(IR.score)
FROM SC AS IR
WHERE R.C# = IR.C#
GROUP BY IR.C#
);
19、按各科平均成績從低到高和及格率的百分數從高到低順序
SELECT t.C# AS 課程號,max(course.Cname)AS 課程名,isnull(AVG(score),0) AS 平均成績
,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分數
FROM SC T,Course
where t.C#=course.C#
GROUP BY t.C#
ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC
20、查詢如下課程平均成績和及格率的百分數(用"1行"顯示): 企業管理(001),馬克思(002),OO&UML (003),資料庫(004)
SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企業管理平均分
,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企業管理及格百分數
,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 馬克思平均分
,100 * SUM(CASE WHEN C# = '002' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 馬克思及格百分數
,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分
,100 * SUM(CASE WHEN C# = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分數
,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 資料庫平均分
,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 資料庫及格百分數
FROM SC
;5. Sqlserver這個第二題是什麼意思怎麼寫求各位幫幫忙
注意點:考察兩表連接、分組、max函數
細節:分組按照學生編號,因為名字可能會重復。表中有的狀態條件模哪肆應該在條件中加上旦轎,
個人認為Bu_Stature=1為有緩穗效學生,del為0為有效成績,科目沒有標明類型,用中文直接賽選條件。
SELECTu.`Bu_Name`AS姓名,MAX(f.`FS`)AS最高語文分數FROMHR_BI_UserInfou
LEFTJOINHR_BI_UserInfo_FSf
ONu.`User_Id`=f.`User_Id`
WHEREf.`KM`='語文'ANDu.`Bu_Stature`=1ANDf.`del`=0
GROUPBYu.`Bu_Code`
6. SQL面試題,謝謝,麻煩了
1 select to_char(regdate,'yyyymm'),count(*) from a group by to_char(regdate,'yyyymm');
2 select name,count(*) from a group by name;
3 insert into c select id,name from a where name in (select name from a group by name having count(*)>1);
4 select * from a, (select name,max(regdate) from a group by name ) as d where a.name=d.name and a.regdate=d.regdate
這里用to_char了,說明是oracle庫,LS的那是sqlserver的查法
7. 拜求sqlserver語句面試題!有相關資料請發一些!
1)增量備份,完全備脊輪則份的差異;
2)ddl;
3)圖書系統,借還程序存儲過程實櫻棚現等桐蠢
8. SQL Server面試題 面試要點
人左右的企業——SQL Server 標准版 人左右的企業——SQL Server 企業版 SQL Server 有幾種安裝方式? )本地全新安裝 家裡裝的一般就是這種 默認為系統用戶 域用戶也可以 但密碼修改後會出問題 所以啟動服務帳戶的密碼在安全性里改 )本地升級安裝 )遠程安裝 )無人值守安裝好碼蠢 本地全新安裝中身份驗證模式分為 )Windows身份驗證模式 )混合模式(Windows 身份驗證和 SQL Server 身份驗證) 安裝後生成的組件有哪些? )企業管理器 )事件探查器(跟蹤) )查詢分析器(執行T SQL語句) )客戶端網路實用工具 )聯機叢書(幫助)
SQL Server服務有哪幾種? )SQL Server服務(主服務) )SQL Server Agent服務 )Microsoft Search(全文本檢索引擎服務) )Distributed Transaction Coordinator(管理分布式事務友陪服務) )MSSQL ServerADHelper服務(發布到活動目錄) )和 )的每一個實例都要一一對應 如何管理服務? )通過Windows 服務管理器管理 )win 管理工具——服務(自帶) 另外 對服務可以進行啟動 暫停 停止 暫停的作用是 已連接到伺服器的用戶可完成任務 但不允許有新的連接 對SQL Server服務進行管理的是企業管理器 管理時要注冊 把企業管理器和伺服器進行連接 也可以注冊遠程伺服器 對SQL Server屬性配置 )常規 )內存 )處理器 )安全性 )還原 )伺服器設置 )資料庫設置 )復制 )Active Directory (修改完後要重啟 ) 客戶機如何連接伺服器?在客戶機上安裝僅客戶端工具 再通過企業管理器去連接 客戶機與伺服器連接兩種協議 TCP/IP協議和命名管道協議 如何提高訪問伺服器的安全性? )修改埠模宴(默認為 ) )刪除命名管道
lishixin/Article/program/SQLServer/201404/30569
9. 有關SQL的面試題。。。
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
等
---
以上,希望對你有所幫助。
10. 網路工程師面試題()(2)
38.小強在公司要查詢www.tsinghua.e.cn這個DNS名稱對應的IP地址時,肆碰圓其正確的查詢過程是:______。
①.查詢公司默認的DNS伺服器
②.查詢ROOT DNS伺服器
③.查詢.CN 域的DNS伺服器
④.查詢.EDU.CN 域的DNS伺服器
⑤.查詢.TSINGHUA.EDU.CN 域的DNS伺服器
A.①②③④⑤
B.①③④⑤②
C.①⑤
D.⑤④③②①
20題
40.系統中有用戶user1和user2,同屬於users組。在user1用戶目錄下有一文件file1,它擁有644的許可權,如果user2用戶想修改user1用戶目錄下的file1文件,應擁有______許可權。
A.744
B.664
C.646
D.746
41.以下哪條命令可以改變文件file的所有者為Sam________?
A.chmod Sam file
B.chown Sam file
C.chgrp Sam file
D.umask Sam file
42.一個文件的許可權為「rwxr-----」,那麼以下哪個說法是正確的_______?
A.所有用戶都可以執行寫操作
B.只有所有者可以執行寫操作
C.所有者和所屬組可以執行寫操作
D.任何人都不能執行寫操作
43.下面哪條命令可以把一個壓縮的打包文件解壓並解包_______?
A.tar cvf
B.tar xvf
C.tar zcvf
D.tar zxvf
45.若命令mkdir具有SetUID的s許可權位,問當普通用戶Sam執行命令mkdir時,新建的目錄所有者為哪個用戶________?
A.Sam
B.users
C.root
D.sys
47.哪條命令可以查看到系統中被掛起的進程________?
A.bg
B.renice
C.jobs
D.who
49.如果你的umask設置為022,預設的,你創吵哪建的文件的許可權為:________。
A.----w--w-
B.-w--w----
C.r-xr-x---
D.rw-r--r--
51.作為一個管理員,你希望在每一個新用戶的目錄下放一個文件 .bashrc ,那麼你應該在哪個目錄下放這個文件,以便於新用戶創建主目錄時自動將這個文件復制到自己的目錄下。
A./etc/skel/
B./etc/default/
C./etc/defaults/
D./etc/profile.d/
52.在linux中有關IDE設備命名編號正確的有________。
A.sda 第一個 IDE 控制器,主設備
B.sdb 第二個 IDE 控制器,次設備
C.hdb 第二個 IDE 控制器,主設備
D.hda 第一個 IDE 控制器,主設裂塌備
56.Samba伺服器的'進程由________兩部分組成。
A.named和sendmail
B.smbd和nmbd
C.bootp和dhcpd
D.httpd和squid
57.對於系統中的進程named(進程號2567),可以通過命令________強行結束。
A.service named stop
B./etc/rc.d/init.d named stop
C.kill -9 named
D.kill -9 2567
< SQL Server >10題
60.若用如下的SQL語句創建了一個表S: CREATE TABLE S(SID CHAR(6) NOT NULL, SNAME CHAR(8) NOT NULL,SEX CHAR(2),AGE INTEGER) 今向S表插入如下行時,________可以給插入。
A.(『991001』,『李明芳』,女,『23』)
B.(『990746』,'張為』,NULL,NULL)
C.(,『陳道一』,『男』,32)
D.(『992345』,NULL,『女』,25)
61.從貨物定單數據表(order)中查詢出其中定單金額(order_price)在1000和5000之間的定單的詳細信息,並按照定單金額(order_price)降序排列。正確的語句是_________。
A.Select * from order where [order_price] between 1000 and 5000
order by [order_price] ASC
B.Select * from order where [order_price] between 1000 and 5000
order by [order_price] DESC
C.Select * from order where 1000<[order_price]<5000 order by [order_price] ASC
D.Select * from order where 1000<[order_price]<5000 order by [order_price] DESC
62.建立資料庫時,將年齡欄位值限制在12~14之間的這種約束屬於_______。
A.實體完整性約束
B.域完整性約束
C.參照完整性約束
D.視圖完整性約束
63.下列有關SQL Server 2000中,master資料庫的說法不正確的是________。
A.用戶資料庫可以重命名,master資料庫不能重命名
B.master資料庫記錄SQLServer的所有系統信息
C.master資料庫在安裝SQLServer的過程中自動安裝
D.不可以重建master資料庫
64.對資料庫的修改操作要遵循的一個原則是:要麼操作全部完成,要麼不進行操作。這個原則可以認為是事務的________特性。
A.一致性B.持久性C.原子性D.隔離性
65.查詢city列的值為空的記錄,在where子句中的條件應寫為________。
A.ity=null
B.city='null'
C.city is null
D.city is 'null'
66.在SQL SERVER中,下列哪些語句屬於給局部變數賦值的語句________。
A.DECLAREB.SET C.USE D.GET
67.A表有25條記錄,B表有8條記錄,執行語句
SELECT A.columnl,B.columnl
FROM A LEFF JOIN B
WHERE A.column2=B.column2
返回的結果集中的記錄數為________。
A.25 B.8 C.33 D.200
68.count與count(*)的區別是________?
A.無區別
B.count是聚合函數,count(*)不是聚合函數
C.count統計空格而COUNT(×)不統計
D.count(*)統計NULL值 ,而COUNT 不統計
69.________包含了一組資料庫操作命令,並且所有的命令作為一個整體一起向系統提交或撤消操作請求。
A.事務 B.更新 C.插入 D.以上都不是
70.frameset的含義是________。
A.表單
B.表格
C.鏈接
D.框架集
74.如果想獲得細的表格邊框線的效果,可以_________。
A.可以將table標簽中的border屬性設置為1
B.可以將table標簽中的border屬性設置為0
C.手寫代碼是寫不出的
D.可以通過設置表格的背景色與單元格的背景色不同,並且對order,cellspacing,cellpadding的屬性值進行控製得到
75.以下HTML代碼中,________是將詞語「Run Away Bride」顯示為Verdana字體並且字型大小為5號的正確代碼。
A. Run Away Bride
b. Run Away Bride
c.「Run Away Bride」
d.
76.在標簽中,下列________屬性用於給參數傳遞內容。
A.Address
B.Value
C.Amount
D.Method
二 多項選擇題(每題中至少有兩個正確答案,少選、多選、錯選均不得分,每題1分,共20分)
81.下列命令中,哪些命令可以使路由器進入線路配置模式________?
A.vty 0
B.line vty 0 4
C.console 0
D.line console 0
82.在哪兩個設備之間可以實現全雙工操作________?
A.交換機到主機
B.交換機到交換機
C.hub 到 hub
D.交換機到 hub
83.以下命令中哪些命令可以看到路由器IOS的信息________。
A.show running-config
B.show flash
C.show version
D.show startup-config
84.TCP/IP 參考模型中沒有________。
A.網路層
B.傳輸層
C.會話層
D.表示層
86.下列對Windows 2003域控制器的描述哪些是正確的:_______。
A.域控制器中存儲域的部分目錄信息
B.域控制器中存儲域的完整目錄信息
C.一個域中只能有一台域控制器
D.一個域中可以有多台域控制器
87.在Windows 2000 Server的內建組中成員可以創建新用戶________。
A.Users
B.Backup Operators
C.Power Users
D.Administrators
88.下列對DNS記錄的描述哪些是正確的:_______。
A.A記錄將主機名映射為IP地址
B.MX記錄標識域的郵件交換服務
C.PTR記錄將IP地址指向主機名
D.NS記錄規定主機的別名
89.要提供DHCP服務,DHCP伺服器必需具備哪些條件:________。
A.具有靜態配置的IP地址
B.具有作用范圍的有效IP地址范圍
C.配置有預設網關
D.配置有子網掩碼
90.使用分布式文件系統的好處有:________。
A.易於訪問文件
B.增加文件訪問性
C.伺服器負載均衡
D.統一設定文件許可權
91.HTML是一個純文本文檔,但是與普通的純文本文檔相比,HTML文檔具有以下特點_____
A.結構化
B.超文本
C.與平台無關
D.簡單,易維護
92.以下哪些是動態網頁的後綴______
A.*.asp
B.*.txt
C.*.php
D.*.cgi
94.下是SQL Server2000資料庫文件的有________。
A.mdf文件
B.mdb文件
C.ldf文件
D.frm文件
95.關於對SQL Server資料庫表的重命名,以下的說話正確的是________。
A.可以在企業管理器中修改表的名稱
B.可以在查詢分析器中使用T-SQL為表重明名
C.SQL Server 2000中,必須執行拷貝粘貼操作才能進行表的結構復制
D.SQL Server 2000中,不允許進行表的重命名
96.在Linux操作系統中的/etc/passwd文件包括的基本選項有________。
A.用戶ID
B.加密的密碼值
C.用戶登錄Shell
D.用戶登錄目錄
97.啟用配額的命令是________。
A.Usrquota
B.Grpquota
C.Rootquota
D.Userquota
98.配置DNS伺服器時,三個最基本的文件是________。
A./etc/named.conf(主配置文件)
B./var/named/localhost.zone(正向解析庫文件)
C./var/named/named.local(反向解析庫文件)
D./etc/reslov.conf(客戶端文件)
100./etc/samba/smb.conf主要包括哪幾部分________。
A.global(全局)參數
B.directory shares(目錄共享)
C.file shares(文件共享)
D.printer shares(列印共享)