首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > 两则实现相同功能的代码比较(使用临时表与不用临时表比较)
【标  题】:两则实现相同功能的代码比较(使用临时表与不用临时表比较)
【关键字】:
【来  源】:http://blog.csdn.net/cyz1980/archive/2006/06/09/783201.aspx

两则实现相同功能的代码比较(使用临时表与不用临时表比较)

if (not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[old_outid]') and OBJECTPROPERTY(id, N'IsUserTable') = 1))
begin
 select customerid,outid into old_outid from t_customers
 --update  t_customers set outid='请输入新的学工号'
/* --把新工号恢复成老工号值
UPDATE T_Customers
SET T_Customers.outid = old_outid.outid
FROM old_outid
WHERE old_outid.customerid = T_Customers.CustomerID
*/
end


select *  into #dpt from (SELECT  dpcode1+dpcode2+dpcode3 as 部门代码,dpname1+'/'+dpname2+'/'+dpname3 as 部门名称  FROM T_Department where dpname1 is not null and dpname2 is not null and dpname3 is not null union all SELECT dpcode1+dpcode2+dpcode3 as 部门代码,dpname1+'/'+dpname2 as 部门名称 FROM T_Department where dpname1 is not null and dpname2 is not null and dpname3 is  null UNION ALL SELECT  dpcode1+dpcode2+dpcode3 as 部门代码,dpname1 as 部门名称 FROM T_Department where dpname1 is not null and dpname2 is  null and dpname3 is  null) l


SELECT CustomerID, MAX(OpDt) AS 最近一次补卡时间 into #ReNewCard_MaxDt
FROM T_ReNewCard
GROUP BY CustomerID


SELECT 部门名称,Name AS 姓名, Alias AS 别名, CardType AS 卡类, c.outid AS 新工号,o.outid as 旧工号,最近一次补卡时间
FROM T_Customers c inner join #dpt d on d.部门代码=c.account inner join #ReNewCard_MaxDt r on
r.customerid=c.customerid inner join old_outid o on c.customerid=o.customerid
WHERE (c.CardType IN (1, 2))

drop table #dpt
drop table #ReNewCard_MaxDt


/* --作视图代码,功能同上,不便阅读理解与修改更新,但适用广。
SELECT d.部门名称, c.Name AS 姓名, c.Alias AS 别名, c.CardType AS 卡类,
      c.outid AS 新工号, o.outid AS 旧工号, r.最近一次补卡时间
FROM T_Customers c INNER JOIN
          (SELECT dpcode1 + dpcode2 + dpcode3 AS 部门代码,
               dpname1 + '/' + dpname2 + '/' + dpname3 AS 部门名称
         FROM T_Department
         WHERE dpname1 IS NOT NULL AND dpname2 IS NOT NULL AND
               dpname3 IS NOT NULL
         UNION ALL
         SELECT dpcode1 + dpcode2 + dpcode3 AS 部门代码,
               dpname1 + '/' + dpname2 AS 部门名称
         FROM T_Department
         WHERE dpname1 IS NOT NULL AND dpname2 IS NOT NULL AND
               dpname3 IS NULL
         UNION ALL
         SELECT dpcode1 + dpcode2 + dpcode3 AS 部门代码, dpname1 AS 部门名称
         FROM T_Department
         WHERE dpname1 IS NOT NULL AND dpname2 IS NULL AND dpname3 IS NULL)
      d ON d.部门代码 = c.Account INNER JOIN
          (SELECT CustomerID, MAX(OpDt) AS 最近一次补卡时间
         FROM T_ReNewCard
         GROUP BY CustomerID) r ON r.CustomerID = c.CustomerID INNER JOIN
      old_outid o ON c.CustomerID = o.customerid
WHERE (c.CardType IN (1, 2))
*/

orale的tnsping与TCP/IP的ping命令的比较:【上一篇】
使命重大的微软SQL Server 2005:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • Slackware10.2中lilo的设置,解决了我双硬盘双系统引导问题
  • IE同样实现多线程断点续传
  • 重定向文件-列出文件大小 命令
  • 用于操作mysql数据库的c++类
  • SAP组合应用框架—SAP Composite Application Framework (www.mynetweaver.cn)
  • RSA与大数运算(1)
  • WinForm设计之ToolPanelTree
  • AIX V5.3 的打印概述 ( I )格式转换程序过滤器和打印假脱机程序的概念
  • Linux系统学习方向和方法浅谈
  • 一个通过web.Mail发送邮件的类
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.