來自中油瑞飛的SQL筆試題20131202

2021-06-19 12:08:47 字數 1945 閱讀 7518

1、有三張表,使用者表,使用者角色表,角色表,

使用sql顯示如下內容:

使用者id,使用者名稱,超級管理員,錄入員,會計

也就是角色用逗號分隔。

解:1、填充資料到表user

select * from [user]

insert into [northwind].[dbo].[user]

([id]

,[name])

values

(1,'zhaohy')

insert into [northwind].[dbo].[user]

([id]

,[name])

values

(2,'zhangyy')

go2、填充資料到表role

select * from [role]

insert into [northwind].[dbo].[role]

([id]

,[rolename])

values

(1,'senior software engineer')

insert into [northwind].[dbo].[role]

([id]

,[rolename])

values

(2,'project manager')

insert into [northwind].[dbo].[role]

([id]

,[rolename])

values

(3,'ui disigner')

insert into [northwind].[dbo].[role]

([id]

,[rolename])

values

(4,'tester')

go3、填充資料到表role_user

select * from role_user

insert into [northwind].[dbo].[role_user]

([roleid]

,[userid])

values

(1,1)

goinsert into [northwind].[dbo].[role_user]

([roleid]

,[userid])

values

(2,1)

insert into [northwind].[dbo].[role_user]

([roleid]

,[userid])

values

(3,1)

insert into [northwind].[dbo].[role_user]

([roleid]

,[userid])

values

(4,2)

4、查詢出來:

drop table #result;

select * into #result from (select u.id,u.name,ru.roleid,r.rolename from [user] u inner join role_user ru on ru.userid =u.id inner join [role] r

on ru.roleid=r.id) as t;

select * from #result;

select id,name, [rolename] = stuff((select ',' + [rolename] from #result t where id = #result.id for xml path('')) , 1 , 1 , '') 

from #result 

group by id ,name;

drop table #result;

輸出結果:

文思創新的SQL筆試題

題目 有a和b倆個表,都定義相同的主鍵,寫出sql語句找出a表中有而b表中沒有的記錄,然後把沒有的記錄插入到b表中。sql語句如下 create table a minus b as 建立乙個差集表a minus b 注意select 語句一定要a表在前。select from a minus se...

騰訊筆試題 2 有趣的數字

小q今天在上廁所時想到了這個問題 有n個數,兩兩組成二元組,差最小的有多少對呢?差最大呢?輸入描述 輸入包含多組測試資料。對於每組測試資料 n 本組測試資料有n個數 a1,a2.an 需要計算的資料 保證 1 n 100000,0 ai int max.輸出描述 對於每組資料,輸出兩個數,第乙個數表...

Oracle最新的Sql筆試題及答案

欄位名稱 資料型別 是否主鍵 注釋dept id number y部門id parent department id number n上級部門 department name varchar2 50 n部門名稱 欄位名稱 資料型別 是否主鍵 注釋id numbery主鍵 dept id number...