zoukankan      html  css  js  c++  java
  • 来自中油瑞飞的SQL笔试题20131202

    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;
    输出结果:
     

  • 相关阅读:
    javascript中万恶的function
    Windows7下如何安装部署秋色园CYQBlog源码V1.0网站
    Extjs2.2:Panel里面嵌入Excel表格
    Extjs做界面很酷;感谢博客园给我一个展示的机会;借此向大家展示一下EXTJS的魅力
    16Aspx.com改进版Extjs简单版酒店管理系统提供下载!
    Ext2.2+ASP.NET开发框架已完成欢迎大家下载!
    Extj+Asp.net开发框架V1.1树的操作
    Ext2.2程序开发实战(1)登录界面
    扩展欧几里得定理
    C语言 统计整数二进制表示中1的个数
  • 原文地址:https://www.cnblogs.com/riasky/p/3455399.html
Copyright © 2011-2022 走看看