精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换

2020-07-06 05:52:07易采站长站整理

      select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where …..
    * 说明:得到表中最小的未使用的ID号
    * Select (CASE WHEN EXISTS(Select * FROM Handle b Where b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID  FROM Handle Where NOT HandleID IN (Select a.HandleID – 1 FROM Handle a)
    * 一个SQL语句的问题:行列转换
      select * from v_temp
      上面的视图结果如下:
      user_name role_name
      ————————-
      系统管理员 管理员
      feng 管理员
      feng 一般用户
      test 一般用户
      想把结果变成这样:
      user_name role_name
      —————————
      系统管理员 管理员
      feng 管理员,一般用户
      test 一般用户
      ===================
      create table a_test(name varchar(20),role2 varchar(20))
      insert into a_test values(‘李’,’管理员’)
      insert into a_test values(‘张’,’管理员’)
      insert into a_test values(‘张’,’一般用户’)
      insert into a_test values(‘常’,’一般用户’)
      create function join_str(@content varchar(100))
      returns varchar(2000)
      as
      begin
      declare @str varchar(2000)
      set @str=”
      select @str=@str+’,’+rtrim(role2) from a_test where [name]=@content
      select @str=right(@str,len(@str)-1)
相关文章 大家在看