一些sqll測試題
表:A01(人員基本情況表)和A32(職務資訊表)
A01(主表)結構
欄位名稱 資料型別 備註
========================================
Z0001 int 主關鍵字
a0101 varchar 姓名
a0102 varchar 地址
a0103 int 性別
a0104 char 出生年月
A32(子表)結構
Z0001 int 關鍵字(外來鍵)
a0105 varchar 所在職務
a0106 char 上任日期
b0001 varchar 職務單位
問題(3)查詢出職務變更最頻繁的人,顯示出此人的姓名
提示:例如A01和A32中有如下資料時,職務變更最頻繁的是人是“魏新”
A01表中資料
z0001 a0101 a0102 a0103 a0104
10000 魏新 男 黑龍江 19800110
10001 林強 男 內蒙古 19801221
a32表中資料
z0001 a0105 a0106 b0001
10000 科長 19990110 A單位
10000 處長 20000123 B單位
10001 科長 19980213 E單位
10000 局長 20021104 C單位
create table A01(Z0001 int primary key,a0101 varchar,a0102 varchar,a0103 int,
a0104 char)
create table A32(Z0001 int foreign key references A01(Z0001) ,a0105 varchar, a0106 char,b0001 varchar)
insert into A01 values(10000, '魏新' ,'黑龍江','1' ,'19800110')
insert into A01 values(10001, '林強' ,'內蒙古','1' ,'19801221')
insert into A32 values(10000, '科長' ,'19990110' ,'A單位')
insert into A32 values(10000, '處長' ,'20000123' ,'B單位')
insert into A32 values(10000, '科長' ,'19980213' ,'E單位')
insert into A32 values(10000, '局長' ,'20021104' ,'C單位')
---問題(3)查詢出職務變更最頻繁的人,顯示出此人的姓名
SELECT * FROM A01
WHERE Z0001=(
SELECT TOP 1 Z0001 FROM A32 GROUP BY Z0001 ORDER BY COUNT(*) DESC
)
第二題、現有一個表table1只有一個欄位F1,表中資料如下:
Z0001
0
1
2
3
4
5
6
7
8
9
問題:用現有的資料用一個SQL語句構造出一個1-9999的結果集,類似如下:
1
2
... ...
9999
select
convert(int,convert(char(1),a.name)+
convert(char(1),b.name)+
convert(char(1),c.name)+
convert(char(1),d.name))+1 as cc
from dbo.test a,dbo.test b,dbo.test c,dbo.test d order by cc
----------------------------------------------
WITH CTE AS(
SELECT Name+1 AS N from dbo.test
UNION all
SELECT N+10 AS N FROM CTE WHERE N+10<=9999)
SELECT * FROM CTE order by N OPTION (MAXrecursion 0)
第三題
如下表(T2)為某班級某一學期的數學成績:
學號 成績
199801001 85
199801002 76
199801003 98
199801004 54
199801005 39
199801006 61
問題:請根據t2表的內容輸出如下兩行資料,要求SQL語句最簡。(60分以上為及格)
類別 人數
============
及格 4
不及格 2
-------------------
select '及格' as [類別],count(*)as [人數] from Student where [成績]>=60
union
select '不及格'as [類別],count(*)as [人數] from Student where [成績]<60
第四題
有如下表T記錄人員的情況:
/*create table t_t
(RenID INT PRiMARY KEY,
RenMing CHAR(8),
RenParentID INT REFERENCES t_t(RenID))*/
=======================================
RenID RenMing RenParentID
2 張一 10
3 張二 10
5 王一 11
8 王二 11
10 張_父 15
11 王_父 NULL
15 張_父_父 16
16 NULL
問題:
1、選擇出所有沒有父的人,注意查詢效能。
select * from dbo.bonuses where ParentID IS NULL
2、選擇出所有人名中含有“_”的人。
SELECT * FROM dbo.bonuses WHERE NAME LIKE '%[_]%'
3、選擇出“張父”的子。
SELECT * FROM dbo.bonuses WHERE ParentID=(SELECT EMPLOYEE_ID FROM dbo.bonuses WHERE NAME='張_父')
4、選擇出有“孫子”的人。
WITH C(EMPLOYEE_ID,name,ParentID,LVL,sort) AS
(SELECT *,0 AS LVL,convert(nvarchar,NAME+'-->') FROM dbo.bonuses WHERE ParentID IS NULL
UNION ALL
SELECT A.*,LVL+1 ,convert(nvarchar,(C.sort + A.name+'-->')) as sort FROM dbo.bonuses A JOIN C ON C.EMPLOYEE_ID=A.ParentID
)
SELECT DISTINCT left(sort,charindex('-',sort)-1) AS NAME FROM C WHERE LVL=2
-------------
select * from dbo.bonuses where EMPLOYEE_ID in
(select ParentID FROM dbo.bonuses WHERE EMPLOYEE_ID IN (SELECT ParentID FROM dbo.bonuses ))
----------------
SELECT * FROM dbo.bonuses WHERE NAME LIKE '%_父_父%'
5、選擇出如下結果:
專案 張 王
人數 4 3
select '人數' as [專案], sum(case when name like '%張%' then 1 else 0 end) as [張],
sum(case when name like '%王%' then 1 else 0 end) as [王]
from dbo.bonuses
-------
6、選擇出如下結果:
專案 人數
王 3
張 4
select '王' as [專案],count(*) as [人數] from dbo.bonuses where name like '%王%'
union
select '張' as [專案],count(*) as [人數] from dbo.bonuses where name like '%張%'
7、將T表中的RenID從1~8排列,不要打亂現有表中資料的關係。
select (select count(*) from dbo.bonuses where EMPLOYEE_ID<=tem.EMPLOYEE_ID) rowid,* from dbo.bonuses tem
-------------------
select row_number() over (order by EMPLOYEE_ID) AS NUM,* from dbo.bonuses
8、選擇出“張父”的子(一列一行),兩個人名中用“,”相隔。
select name=
stuff(replace(replace((select name from dbo.bonuses where ParentID=10 for xml auto),'
9、編寫一儲存過程可以列出給定RenID的所有子(包括子的子)。\
create proc getChildren
(@ID int)
AS
begin
select * from dbo.bonuses where ParentID=@ID
union
select B.* from dbo.bonuses A join dbo.bonuses B ON A.EMPLOYEE_ID=B.ParentID
WHERE A.ParentID=@ID
end
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7899089/viewspace-611317/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 菜鳥教程 html測試一些問題HTML
- 一些簡單的Python測試題Python
- 今天測試oracle stream遇到一些問題Oracle
- 測試管理者常遇到的一些問題
- split partition的一些測試
- exchange partition的一些測試
- SQLL基礎知識記錄SQL
- 測試CMS同步問題測試CMS同步問題
- 測試面試題面試題
- 面試測試題面試
- ORACLE 測試題:Oracle
- Julia語言的一些測試
- 軟體測試經典測試題(4)
- 測試者出的APP測試面試題APP面試題
- 測試筆試多選題筆試
- 軟體測試筆試題筆試
- 效能測試面試題面試題
- 軟體測試面試問題_介面測試(二)面試
- 測試測試測試測試測試測試
- Hadoop測試常見問題和測試方法Hadoop
- 測試面試問題(二)面試
- JavaScrip模糊測試(開題)Java
- HTML CSS JavaScript測試題HTMLCSSJavaScript
- iOS測試奇葩問題iOS
- 測試跨域問題跨域
- 移動端遊戲測試一些問答遊戲
- 測試工具培訓的一些建議
- 測試筆試邏輯思維題筆試
- 一些Linux試題(經典!!)(轉)Linux
- 10年老測試工程師的一些心得:結合案例談談迴歸測試和確認測試工程師
- TPA測試專案管理系統-測試問題管理專案管理
- 測試面試題集錦(五)| 自動化測試與效能測試篇(附答案)面試題
- .net 面試題與測試題(附答案)面試題
- 效能測試筆試 50 題 (答案在末尾)筆試
- 學習自動化測試的一些感悟
- 一些ASM 資料庫的測試和管理ASM資料庫
- 單元測試怎麼做的一些思考
- 2024最新軟體測試【測試理論+ 介面測試】面試題(內附答案)面試題