网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

SQL与ACCESS、EXCEL的导入导出

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
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)

  return @str

  end

  go

  --调用:

  select [name],dbo.join_str([name]) role2 from a_test group by [name]

  --select distinct name,dbo.uf_test(name) from a_test

  * 快速比较结构相同的两表

  结构相同的两表,一表有记录3万条左右,一表有记录2万条左右,我怎样快速查找两表的不同记录?

  ============================

  给你一个测试方法,从northwind中的orders表取数据。

  select * into n1 from orders

  select * into n2 from orders

  select * from n1

  select * from n2

  --添加主键,然后修改n1中若干字段的若干条

  alter table n1 add constraint pk_n1_id primary key (OrderID)

  alter table n2 add constraint pk_n2_id primary key (OrderID)

  select OrderID from (select * from n1 union select * from n2) a group by OrderID having count(*) > 1

  应该可以,而且将不同的记录的ID显示出来。

  下面的适用于双方记录一样的情况,

  select * from n1 where orderid in (select OrderID from (select * from n1 union select * from n2) a group by OrderID having count(*) > 1)

  至于双方互不存在的记录是比较好处理的

  --删除n1,n2中若干条记录

  delete from n1 where orderID in ('10728','10730')

  delete from n2 where orderID in ('11000','11001')

  --*************************************************************

  -- 双方都有该记录却不完全相同

  select * from n1 where orderid in(select OrderID from (select * from n1 union select * from n2) a group by OrderID having count(*) > 1)

  union

  --n2中存在但在n1中不存的在10728,10730

  select * from n1 where OrderID not in (select OrderID from n2)

  union

  --n1中存在但在n2中不存的在11000,11001

  select * from n2 where OrderID not in (select OrderID from n1)

  * 四种方法取表里n到m条纪录:

  1.

  select top m * into 临时表(或表变量)

  • 上一篇资讯: sql知识点总结
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师