来自中油瑞飞的SQL笔试题20131202

原创 2013年12月02日 22:47:42

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')
GO

2、填充数据到表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')
GO
3、填充数据到表Role_User
select * from Role_User
INSERT INTO [northwind].[dbo].[Role_User]
           ([RoleID]
           ,[UserID])
     VALUES
           (1
           ,1)
GO
INSERT 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语句查询(经典笔试题)

题目1: 问题描述:  S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名  C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课...

SQL笔试题(转载的)

  • 2013年01月25日 14:04
  • 24.72MB
  • 下载

数据库sql语句笔试题--包含创建数据库、表、插入记录、查询等操作

4.找出总成绩最高的学生的学号和姓名: select stuID,stuName from tblstudent where stuID= (select stuID from tblscope gr...
  • BeauXie
  • BeauXie
  • 2016年10月27日 20:55
  • 3472

SQL笔试题(单选20道)

一、单选题 1、SQL 指的是? A、Strong Question Language B、Structured Question Language C、Structured Query La...

笔试题:SQL统计各班成绩第一名的学生信息

SQL笔试题:统计各班成绩第一名的学生信息。

一套SQL笔试题1、查找整个职员表的所有内容。select*fromemployees2、查看雇员

一套SQL笔试题 1、查找整个职员表的所有内容。 select * from employees 2、查看雇员名字(last_name)。 select last_name from em...

sql经典笔试题二(含答案)

  • 2010年01月04日 15:40
  • 28KB
  • 下载

SQL笔试题解答()

  • 2009年04月15日 00:15
  • 56KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:来自中油瑞飞的SQL笔试题20131202
举报原因:
原因补充:

(最多只允许输入30个字)