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

时间:2021-02-03 09:35:10
今天做个行列转换 找到的好语句  解决了我的问题
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换     *  说明:复制表(只复制结构,源表名:a 新表名:b)
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   into  b  from  a  where   1 <> 1
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  说明:拷贝表(拷贝数据,源表名:a 目标表名:b)
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  b(a, b, c)  select  d,e,f  from  b;
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  说明:显示文章、提交人和最后回复时间
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select  a.title,a.username,b.adddate  from   table  a,( select   max (adddate) adddate  from   table   where   table .title = a.title) b
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  说明:外连接查询(表名1:a 表名2:b)
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select  a.a, a.b, a.c, b.c, b.d, b.f  from  a  LEFT  OUT  JOIN  b  ON  a.a  =  b.c
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  说明:日程安排提前五分钟提醒
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  日程安排  where   datediff ( ' minute ' ,f开始时间, getdate ()) > 5
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  说明:两张关联表,删除主表中已经在副表中没有的信息
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
delete   from  info  where   not   exists  (  select   *   from  infobz  where  info.infid = infobz.infid )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  说明: --
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换

精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      SQL:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SELECT  A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
FROM  TABLE1,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      (
SELECT  X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
FROM  ( SELECT  NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
FROM  TABLE2
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
WHERE  TO_CHAR(UPD_DATE, ' YYYY/MM ' =  TO_CHAR(SYSDATE,  ' YYYY/MM ' )) X,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      (
SELECT  NUM, UPD_DATE, STOCK_ONHAND
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
FROM  TABLE2
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
WHERE  TO_CHAR(UPD_DATE, ' YYYY/MM ' =
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 
' YYYY/MM ' ||   ' /01 ' , ' YYYY/MM/DD ' -   1 ' YYYY/MM ' ) ) Y,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
WHERE  X.NUM  =  Y.NUM ( +
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
AND  X.INBOUND_QTY  +  NVL(Y.STOCK_ONHAND, 0 <>  X.STOCK_ONHAND ) B
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
WHERE  A.NUM  =  B.NUM
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  说明: --
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
       select   *   from  studentinfo  where   not   exists ( select   *   from  student  where  studentinfo.id = student.id)  and  系名称 = ' "&strdepartmentname&" '   and  专业名称 = ' "&strprofessionname&" '   order   by  性别,生源地,高考总成绩
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源)
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SELECT  a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate,  ' yyyy ' AS  telyear,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SUM (decode(TO_CHAR(a.telfeedate,  ' mm ' ),  ' 01 ' , a.factration))  AS  JAN,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SUM (decode(TO_CHAR(a.telfeedate,  ' mm ' ),  ' 02 ' , a.factration))  AS  FRI,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SUM (decode(TO_CHAR(a.telfeedate,  ' mm ' ),  ' 03 ' , a.factration))  AS  MAR,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SUM (decode(TO_CHAR(a.telfeedate,  ' mm ' ),  ' 04 ' , a.factration))  AS  APR,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SUM (decode(TO_CHAR(a.telfeedate,  ' mm ' ),  ' 05 ' , a.factration))  AS  MAY,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SUM (decode(TO_CHAR(a.telfeedate,  ' mm ' ),  ' 06 ' , a.factration))  AS  JUE,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SUM (decode(TO_CHAR(a.telfeedate,  ' mm ' ),  ' 07 ' , a.factration))  AS  JUL,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SUM (decode(TO_CHAR(a.telfeedate,  ' mm ' ),  ' 08 ' , a.factration))  AS  AGU,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SUM (decode(TO_CHAR(a.telfeedate,  ' mm ' ),  ' 09 ' , a.factration))  AS  SEP,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SUM (decode(TO_CHAR(a.telfeedate,  ' mm ' ),  ' 10 ' , a.factration))  AS  OCT,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SUM (decode(TO_CHAR(a.telfeedate,  ' mm ' ),  ' 11 ' , a.factration))  AS  NOV,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SUM (decode(TO_CHAR(a.telfeedate,  ' mm ' ),  ' 12 ' , a.factration))  AS   DEC
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
FROM  ( SELECT  a.userper, a.tel, a.standfee, b.telfeedate, b.factration
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
FROM  TELFEESTAND a, TELFEE b
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
WHERE  a.tel  =  b.telfax) a
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
GROUP   BY  a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate,  ' yyyy ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  说明:四表联查问题
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
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  精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换..
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  说明:得到表中最小的未使用的ID号
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*   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和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  一个SQL语句的问题:行列转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  v_temp
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      上面的视图结果如下:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
user_name  role_name
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
-- -----------------------
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
      系统管理员 管理员
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      feng 管理员
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      feng 一般用户
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      test 一般用户
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      想把结果变成这样:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
user_name  role_name
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
-- -------------------------
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
      系统管理员 管理员
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      feng 管理员,一般用户
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      test 一般用户
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
===================
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
create   table  a_test(name  varchar ( 20 ),role2  varchar ( 20 ))
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  a_test  values ( ' ' , ' 管理员 ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  a_test  values ( ' ' , ' 管理员 ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  a_test  values ( ' ' , ' 一般用户 ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  a_test  values ( ' ' , ' 一般用户 ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
create   function  join_str( @content   varchar ( 100 ))
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
returns   varchar ( 2000 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
as
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
begin
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
declare   @str   varchar ( 2000 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
set   @str = ''
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @str = @str + ' , ' + rtrim (role2)  from  a_test  where   [ name ] = @content
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @str = right ( @str , len ( @str ) - 1 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
return   @str
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
end
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
go
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
-- 调用:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
       select   [ name ] ,dbo.join_str( [ name ] ) role2  from  a_test  group   by   [ name ]
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
-- select distinct name,dbo.uf_test(name) from a_test
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换

精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  快速比较结构相同的两表
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      结构相同的两表,一表有记录3万条左右,一表有记录2万条左右,我怎样快速查找两表的不同记录?
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
============================
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      给你一个测试方法,从northwind中的orders表取数据。
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   into  n1  from  orders
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   into  n2  from  orders
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  n1
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  n2
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
-- 添加主键,然后修改n1中若干字段的若干条
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
       alter   table  n1  add   constraint  pk_n1_id  primary   key  (OrderID)
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
alter   table  n2  add   constraint  pk_n2_id  primary   key  (OrderID)
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select  OrderID  from  ( select   *   from  n1  union   select   *   from  n2) a  group   by  OrderID  having   count ( * >   1
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      应该可以,而且将不同的记录的ID显示出来。
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      下面的适用于双方记录一样的情况,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  n1  where  orderid  in  ( select  OrderID  from  ( select   *   from  n1  union   select   *   from  n2) a  group   by  OrderID  having   count ( * >   1 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      至于双方互不存在的记录是比较好处理的
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
-- 删除n1,n2中若干条记录
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
       delete   from  n1  where  orderID  in  ( ' 10728 ' , ' 10730 ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
delete   from  n2  where  orderID  in  ( ' 11000 ' , ' 11001 ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
-- *************************************************************
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
       --  双方都有该记录却不完全相同
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
       select   *   from  n1  where  orderid  in ( select  OrderID  from  ( select   *   from  n1  union   select   *   from  n2) a  group   by  OrderID  having   count ( * >   1 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
union
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
-- n2中存在但在n1中不存的在10728,10730
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
       select   *   from  n1  where  OrderID  not   in  ( select  OrderID  from  n2)
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
union
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
-- n1中存在但在n2中不存的在11000,11001
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
       select   *   from  n2  where  OrderID  not   in  ( select  OrderID  from  n1)
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  四种方法取表里n到m条纪录:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
1 .
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   top  m  *   into  临时表(或表变量)  from  tablename  order   by  columnname  --  将top m笔插入
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
       set   rowcount  n
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  表变量  order   by  columnname  desc
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
2 .
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   top  n  *   from  ( select   top  m  *   from  tablename  order   by  columnname) a  order   by  columnname  desc
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
3 .如果tablename里没有其他identity列,那么:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   identity ( int ) id0, *   into  # temp   from  tablename
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      取n到m条的语句为:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  # temp   where  id0  >= and  id0  <=  m
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      如果你在执行select 
identity ( int ) id0, *   into  # temp   from  tablename这条语句的时候报错,那是因为你的DB中间的select  into / bulkcopy属性没有打开要先执行:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
exec  sp_dboption 你的DB名字, ' select into/bulkcopy ' ,true
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
4 .如果表里有identity属性,那么简单:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  tablename  where   identitycol   between  n  and  m
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  如何删除一个表中重复的记录?
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
create   table  a_dist(id  int ,name  varchar ( 20 ))
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  a_dist  values ( 1 , ' abc ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  a_dist  values ( 1 , ' abc ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  a_dist  values ( 1 , ' abc ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  a_dist  values ( 1 , ' abc ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
exec  up_distinct  ' a_dist ' , ' id '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  a_dist
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
create   procedure  up_distinct( @t_name   varchar ( 30 ), @f_key   varchar ( 30 ))
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
-- f_key表示是分组字段﹐即主键字段
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
       as
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
begin
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
declare   @max   integer , @id   varchar ( 30 ) , @sql   varchar ( 7999 ) , @type   integer
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @sql   =   ' declare cur_rows cursor for select  ' + @f_key + '  ,count(*) from  '   + @t_name   + '  group by  '   + @f_key   + '  having count(*) > 1 '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
exec ( @sql )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
open  cur_rows
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
fetch  cur_rows  into   @id , @max
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
while   @@fetch_status = 0
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
begin
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @max   =   @max   - 1
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
set   rowcount   @max
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @type   =  xtype  from  syscolumns  where  id = object_id ( @t_name and  name = @f_key
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
if   @type = 56
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @sql   =   ' delete from  ' + @t_name + '  where  '   +   @f_key + '  =  ' +   @id
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
if   @type = 167
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @sql   =   ' delete from  ' + @t_name + '  where  '   +   @f_key + '  =  ' + '''' +   @id   + ''''
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
exec ( @sql )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
fetch  cur_rows  into   @id , @max
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
end
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
close  cur_rows
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
deallocate  cur_rows
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
set   rowcount   0
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
end
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  systypes
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  syscolumns  where  id  =   object_id ( ' a_dist ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  查询数据的最大排序问题(只能用一条语句写)
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
CREATE   TABLE  hard (qu  char  ( 11 ) ,co  char  ( 11 ) ,je numeric( 3 0 ))
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  hard  values  ( ' A ' , ' 1 ' , 3 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  hard  values  ( ' A ' , ' 2 ' , 4 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  hard  values  ( ' A ' , ' 4 ' , 2 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  hard  values  ( ' A ' , ' 6 ' , 9 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  hard  values  ( ' B ' , ' 1 ' , 4 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  hard  values  ( ' B ' , ' 2 ' , 5 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  hard  values  ( ' B ' , ' 3 ' , 6 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  hard  values  ( ' C ' , ' 3 ' , 4 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  hard  values  ( ' C ' , ' 6 ' , 7 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  hard  values  ( ' C ' , ' 2 ' , 3 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      要求查询出来的结果如下:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      qu co je
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
-- --------- ----------- -----
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
      A  6   9
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      A 
2   4
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      B 
3   6
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      B 
2   5
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      C 
6   7
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      C 
3   4
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      就是要按qu分组,每组中取je最大的前2位!!
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      而且只能用一句sql语句!!!
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  hard a  where  je  in  ( select   top   2  je  from  hard b  where  a.qu = b.qu  order   by  je)
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  求删除重复记录的sql语句?
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      怎样把具有相同字段的纪录删除,只留下一条。
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      例如,表test里有id,name字段
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      如果有name相同的记录 只留下一条,其余的删除。
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      name的内容不定,相同的记录数不定。
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      有没有这样的sql语句?
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
==============================
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      A:一个完整的解决方案:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      将重复的记录记入temp1表:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   [ 标志字段id ] , count ( * into  temp1  from   [ 表名 ]
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
group   by   [ 标志字段id ]
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
having   count ( * ) > 1
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
2 、将不重复的记录记入temp1表:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert  temp1  select   [ 标志字段id ] , count ( * from   [ 表名 ]   group   by   [ 标志字段id ]   having   count ( * ) = 1
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
3 、作一个包含所有不重复记录的表:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   into  temp2  from   [ 表名 ]   where  标志字段id  in ( select  标志字段id  from  temp1)
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
4 、删除重复表:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
delete   [ 表名 ]
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
5 、恢复表:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   [ 表名 ]   select   *   from  temp2
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
6 、删除临时表:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
drop   table  temp1
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
drop   table  temp2
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
================================
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      B:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
create   table  a_dist(id  int ,name  varchar ( 20 ))
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  a_dist  values ( 1 , ' abc ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  a_dist  values ( 1 , ' abc ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  a_dist  values ( 1 , ' abc ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
insert   into  a_dist  values ( 1 , ' abc ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
exec  up_distinct  ' a_dist ' , ' id '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  a_dist
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
create   procedure  up_distinct( @t_name   varchar ( 30 ), @f_key   varchar ( 30 ))
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
-- f_key表示是分组字段﹐即主键字段
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
       as
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
begin
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
declare   @max   integer , @id   varchar ( 30 ) , @sql   varchar ( 7999 ) , @type   integer
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @sql   =   ' declare cur_rows cursor for select  ' + @f_key + '  ,count(*) from  '   + @t_name   + '  group by  '   + @f_key   + '  having count(*) > 1 '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
exec ( @sql )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
open  cur_rows
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
fetch  cur_rows  into   @id , @max
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
while   @@fetch_status = 0
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
begin
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @max   =   @max   - 1
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
set   rowcount   @max
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @type   =  xtype  from  syscolumns  where  id = object_id ( @t_name and  name = @f_key
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
if   @type = 56
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @sql   =   ' delete from  ' + @t_name + '  where  '   +   @f_key + '  =  ' +   @id
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
if   @type = 167
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @sql   =   ' delete from  ' + @t_name + '  where  '   +   @f_key + '  =  ' + '''' +   @id   + ''''
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
exec ( @sql )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
fetch  cur_rows  into   @id , @max
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
end
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
close  cur_rows
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
deallocate  cur_rows
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
set   rowcount   0
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
end
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  systypes
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  syscolumns  where  id  =   object_id ( ' a_dist ' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  行列转换 -- 普通
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换

精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      假设有张学生成绩表(CJ)如下
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      Name Subject Result
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      张三 语文 
80
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      张三 数学 
90
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      张三 物理 
85
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      李四 语文 
85
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      李四 数学 
92
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      李四 物理 
82
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      想变成
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      姓名 语文 数学 物理
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      张三 
80   90   85
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      李四 
85   92   82
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
declare   @sql   varchar ( 4000 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
set   @sql   =   ' select Name '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @sql   =   @sql   +   ' ,sum(case Subject when  ''' + Subject + '''  then Result end) [ ' + Subject + ' ] '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
from  ( select   distinct  Subject  from  CJ)  as  a
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @sql   =   @sql + '  from test group by name '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
exec ( @sql )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      行列转换
-- 合并
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换

精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      有表A,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      id pid
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
1   1
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
1   2
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
1   3
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
2   1
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
2   2
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
3   1
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      如何化成表B:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      id pid
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
1   1 , 2 , 3
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
2   1 , 2
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
3   1
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      创建一个合并的函数
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
create   function  fmerg( @id   int )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
returns   varchar ( 8000 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
as
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
begin
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
declare   @str   varchar ( 8000 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
set   @str = ''
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @str = @str + ' , ' + cast (pid  as   varchar from  表A  where  id = @id
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
set   @str = right ( @str , len ( @str ) - 1 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
return ( @str )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
End
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
go
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
-- 调用自定义函数得到结果
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
       select   distinct  id,dbo.fmerg(id)  from  表A
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  如何取得一个数据表的所有列名
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      方法如下:先从SYSTEMOBJECT系统表中取得数据表的SYSTEMID,然后再SYSCOLUMN表中取得该数据表的所有列名。
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      SQL语句如下:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
declare   @objid   int , @objname   char ( 40 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
set   @objname   =   ' tablename '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   @objid   =  id  from  sysobjects  where  id  =   object_id ( @objname )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   ' Column_name '   =  name  from  syscolumns  where  id  =   @objid   order   by  colid
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      或
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SELECT   *   FROM  INFORMATION_SCHEMA.COLUMNS  WHERE  TABLE_NAME  = ' users '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  通过SQL语句来更改用户的密码
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      修改别人的,需要sysadmin role
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
EXEC  sp_password  NULL ' newpassword ' ' User '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      如果帐号为SA执行EXEC sp_password 
NULL ' newpassword ' , sa
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  怎么判断出一个表的哪些字段不允许为空?
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select  COLUMN_NAME  from  INFORMATION_SCHEMA.COLUMNS  where  IS_NULLABLE = ' NO '   and  TABLE_NAME = tablename
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  如何在数据库里找到含有相同字段的表?
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      a. 查已知列名的情况
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SELECT  b.name  as  TableName,a.name  as  columnname
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
From  syscolumns a  INNER   JOIN  sysobjects b
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
ON  a.id = b.id
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
AND  b.type = ' U '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
AND  a.name = ' 你的字段名字 '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  未知列名查所有在不同表出现过的列名
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
Select  o.name  As  tablename,s1.name  As  columnname
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
From  syscolumns s1, sysobjects o
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
Where  s1.id  =  o.id
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
And  o.type  =   ' U '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
And   Exists  (
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
Select   1   From  syscolumns s2
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
Where  s1.name  =  s2.name
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
And  s1.id  <>  s2.id
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  查询第xxx行数据
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      假设id是主键:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   *   from  ( select   top  xxx  *   from  yourtable) aa  where   not   exists ( select   1   from  ( select   top  xxx - 1   *   from  yourtable) bb  where  aa.id = bb.id)
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      如果使用游标也是可以的
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
fetch  absolute  [ number ]   from   [ cursor_name ]
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      行数为绝对行数
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  SQL Server日期计算
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      a. 一个月的第一天
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SELECT   DATEADD (mm,  DATEDIFF (mm, 0 , getdate ()),  0 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      b. 本周的星期一
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SELECT   DATEADD (wk,  DATEDIFF (wk, 0 , getdate ()),  0 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      c. 一年的第一天
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SELECT   DATEADD (yy,  DATEDIFF (yy, 0 , getdate ()),  0 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      d. 季度的第一天
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SELECT   DATEADD (qq,  DATEDIFF (qq, 0 , getdate ()),  0 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      e. 上个月的最后一天
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SELECT   dateadd (ms, - 3 , DATEADD (mm,  DATEDIFF (mm, 0 , getdate ()),  0 ))
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      f. 去年的最后一天
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SELECT   dateadd (ms, - 3 , DATEADD (yy,  DATEDIFF (yy, 0 , getdate ()),  0 ))
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      g. 本月的最后一天
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SELECT   dateadd (ms, - 3 , DATEADD (mm,  DATEDIFF (m, 0 , getdate ()) + 1 0 ))
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      h. 本月的第一个星期一
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select   DATEADD (wk,  DATEDIFF (wk, 0 ,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
dateadd (dd, 6 - datepart ( day , getdate ()), getdate ())
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      ), 
0 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      i. 本年的最后一天
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SELECT   dateadd (ms, - 3 , DATEADD (yy,  DATEDIFF (yy, 0 , getdate ()) + 1 0 ))。
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  获取表结构 [ 把 'sysobjects' 替换 成 'tablename' 即可 ]
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SELECT   CASE   IsNull (I.name,  '' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
When   ''   Then   ''
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
Else   ' * '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
End   as  IsPK,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
Object_Name (A.id)  as  t_name,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      A.name 
as  c_name,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
IsNull ( SubString (M. text 1 254 ),  '' as  pbc_init,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      T.name 
as  F_DataType,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
CASE   IsNull ( TYPEPROPERTY (T.name,  ' Scale ' ),  '' )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
WHEN   ''   Then   Cast (A.prec  as   varchar )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
ELSE   Cast (A.prec  as   varchar +   ' , '   +   Cast (A.scale  as   varchar )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
END   as  F_Scale,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      A.isnullable 
as  F_isNullAble
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
FROM  Syscolumns  as  A
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
JOIN  Systypes  as  T
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
ON  (A.xType  =  T.xUserType  AND  A.Id  =   Object_id ( ' sysobjects ' ) )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
LEFT   JOIN  ( SysIndexes  as  I
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
JOIN  Syscolumns  as  A1
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
ON  ( I.id  =  A1.id  and  A1.id  =   object_id ( ' sysobjects ' and  (I.status  &   0x800 =   0x800   AND  A1.colid  <=  I.keycnt) )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
ON  ( A.id  =  I.id  AND  A.name  =   index_col ( ' sysobjects ' , I.indid, A1.colid) )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
LEFT   JOIN  SysComments  as  M
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
ON  ( M.id  =  A.cdefault  and   ObjectProperty (A.cdefault,  ' IsConstraint ' =   1  )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
ORDER   BY  A.Colid  ASC
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  提取数据库内所有表的字段详细说明的SQL语句
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SELECT
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      (
case   when  a.colorder = 1   then  d.name  else   ''   end ) N ' 表名 ' ,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      a.colorder N
' 字段序号 ' ,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      a.name N
' 字段名 ' ,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      (
case   when   COLUMNPROPERTY ( a.id,a.name, ' IsIdentity ' ) = 1   then   ' ' else   ''
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
end ) N ' 标识 ' ,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      (
case   when  ( SELECT   count ( * )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
FROM  sysobjects
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
WHERE  (name  in
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      (
SELECT  name
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
FROM  sysindexes
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
WHERE  (id  =  a.id)  AND  (indid  in
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      (
SELECT  indid
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
FROM  sysindexkeys
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
WHERE  (id  =  a.id)  AND  (colid  in
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      (
SELECT  colid
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
FROM  syscolumns
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
WHERE  (id  =  a.id)  AND  (name  =  a.name)))))))  AND
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      (xtype 
=   ' PK ' )) > 0   then   ' '   else   ''   end ) N ' 主键 ' ,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      b.name N
' 类型 ' ,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      a.length N
' 占用字节数 ' ,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
COLUMNPROPERTY (a.id,a.name, ' PRECISION ' as  N ' 长度 ' ,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
isnull ( COLUMNPROPERTY (a.id,a.name, ' Scale ' ), 0 as  N ' 小数位数 ' ,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      (
case   when  a.isnullable = 1   then   ' ' else   ''   end ) N ' 允许空 ' ,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
isnull (e. text , '' ) N ' 默认值 ' ,
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
isnull (g. [ value ] , '' AS  N ' 字段说明 '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
FROM  syscolumns a
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
left   join  systypes b
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
on  a.xtype = b.xusertype
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
inner   join  sysobjects d
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
on  a.id = d.id  and  d.xtype = ' U '   and  d.name <> ' dtproperties '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
left   join  syscomments e
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
on  a.cdefault = e.id
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
left   join  sysproperties g
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
on  a.id = g.id  AND  a.colid  =  g.smallid
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
order   by   object_name (a.id),a.colorder
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  快速获取表test的记录总数 [ 对大容量表非常有效 ]
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      快速获取表test的记录总数:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
select  rows  from  sysindexes  where  id  =   object_id ( ' test ' and  indid  in  ( 0 , 1 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
update   2   set  KHXH = (ID + 1 )\ 2  2行递增编号
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
update   [ 23 ]   set  id1  =   ' No. ' + right ( ' 00000000 ' + id, 6 where  id  not   like   ' No% '   // 递增
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
update   [ 23 ]   set  id1 =   ' No. ' + right ( ' 00000000 ' + replace (id1, ' No. ' , '' ), 6 // 补位递增
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
delete   from   [ 1 ]   where  (id % 2 ) = 1
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      奇数
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  替换表名字段
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
update   [ 1 ]   set  domurl  =   replace (domurl, ' Upload/Imgswf/ ' , ' Upload/Photo/ ' where  domurl  like   ' %Upload/Imgswf/% '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    
*  截位
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换      
SELECT   LEFT (表名,  5 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact - SQL语句进行导入导出操作。在 Transact - SQL语句中,我们主要使用OpenDataSource函数、 OPENROWSET  函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL SERVER、ACCESS、EXCEL数据转换,详细说明如下:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换一、SQL SERVER 和ACCESS的数据导入导出
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换常规的数据导入导出:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换  ○1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换  ○2Services(数据转换服务),然后选择  czdImport Data(导入数据)。
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换  ○3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access 
as  the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换  ○4在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider 
for  SQL Server,选择数据库服务器,然后单击必要的验证方式。
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换  ○5在Specify 
Table  Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换    ○6在Select Source Tables(选择源表格)对话框中,单击Select 
All (全部选定)。下一步,完成。
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换Transact
- SQL语句进行导入导出:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
1 .在SQL SERVER里查询access数据:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
SELECT   *   FROM   OpenDataSource ' Microsoft.Jet.OLEDB.4.0 ' , ' Data Source="c:\DB.mdb";User ID=Admin;Password= ' )精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换表名
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
2 .将access导入SQL server
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换在SQL SERVER 里运行:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
SELECT   *   INTO  newtable  FROM   OPENDATASOURCE  ( ' Microsoft.Jet.OLEDB.4.0 ' , ' Data Source="c:\DB.mdb";User ID=Admin;Password= '  )精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换表名
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
3 .将SQL SERVER表里的数据插入到Access表中
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换在SQL SERVER 里运行:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
insert   into   OpenDataSource ' Microsoft.Jet.OLEDB.4.0 ' , ' Data Source=" c:\DB.mdb";User ID=Admin;Password= ' )精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换表名 (列名1,列名2)  select  列名1,列名2   from   sql表
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换实例:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
insert   into    OPENROWSET ( ' Microsoft.Jet.OLEDB.4.0 ' , ' C:\db.mdb ' ; ' admin ' ; '' , Test)  select  id,name  from  Test
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
INSERT   INTO   OPENROWSET ( ' Microsoft.Jet.OLEDB.4.0 ' ' c:\trade.mdb ' ' admin ' '' , 表名)  SELECT   *   FROM  sqltablename
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换二、SQL SERVER 和EXCEL的数据导入导出
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
1 、在SQL SERVER里查询Excel数据:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
SELECT   *   FROM   OpenDataSource ' Microsoft.Jet.OLEDB.4.0 ' , ' Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0 ' )精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换 [ Sheet1$ ]
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
SELECT   *   FROM   OpenDataSource  (  ' Microsoft.Jet.OLEDB.4.0 ' , ' Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0 ' )精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换xactions
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
2 、将Excel的数据导入SQL server :
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
SELECT   *   into  newtable  FROM   OpenDataSource ' Microsoft.Jet.OLEDB.4.0 ' , ' Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0 ' )精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换 [ Sheet1$ ]
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换实例:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
SELECT   *   into  newtable  FROM   OpenDataSource ' Microsoft.Jet.OLEDB.4.0 ' , ' Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0 ' )精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换xactions
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
3 、将SQL SERVER中查询到的数据导成一个Excel文件
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换T
- SQL代码:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
EXEC  master..xp_cmdshell  ' bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P"" '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换参数:S 是SQL服务器名;U是用户;P是密码
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换说明:还可以导出文本文件等多种格式
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换实例:
EXEC  master..xp_cmdshell  ' bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa" '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
EXEC  master..xp_cmdshell  ' bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换在VB6中应用ADO导出EXCEL文件代码:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换Dim cn  
As  New ADODB.Connection
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换cn.
open  "Driver = {SQL Server};Server = WEBSVR; DataBase = WebMis;UID = sa;WD = 123 ;"
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换cn.
execute  "master..xp_cmdshell  ' bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword ' "
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
4 、在SQL SERVER里往Excel插入数据:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
insert   into   OpenDataSource ' Microsoft.Jet.OLEDB.4.0 ' , ' Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0 ' )精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换table1 (A1,A2,A3)  values  ( 1 , 2 , 3 )
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换T
- SQL代码:
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
INSERT   INTO  
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换 
OPENDATASOURCE ( ' Microsoft.JET.OLEDB.4.0 ' , ' Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls ' )精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换 [ Filiale1$ ]   (bestand, produkt)  VALUES  ( 20 ' Test '
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换总结:利用以上语句,我们可以方便地将SQL SERVER、ACCESS和EXCEL电子表格软件中的数据进行转换,为我们提供了极大方便!