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...