知识大全 在T-SQL中实现Oracle的MINUS集合运算符

Posted 操作

篇首语:知识的奇特就在于:谁真心渴求它,谁就往往能够得到它。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在T-SQL中实现Oracle的MINUS集合运算符相关的知识,希望对你有一定的参考价值。

在T-SQL中实现Oracle的MINUS集合运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  SQL语言中的MINUS(减法)集合运算符是非常重要的 找到两个给定的数值集合之间的差异 意味着找到一个数值集合 其中的元素仅存在于前一个集合中 而不存在于另一个集合中 这项操作是一个很常见 也非常重要的操作 特别是在处理数据库图表发生结构性的变化的时候

  这项操作在以下情况中非常有用 当你想标识哪些列被添加或者删除时 或者当你改变了表中的初始值 并想了解两个图表中的数据差别时

  例如 在测试和产品环境中

  这个运算符存在于Oracle SQL中 但是很不幸运的是 它不存在于SQL Server SQL中 这里我描述一下使用T SQL工具实现功能稍弱一点的MINUS运算符的方法

  我编写了一个名为sp_Minus的程序 这个程序执行两个查询 并找出他们之间的差别 当结果集中只出现了一个列时 会出现意外情况 它实际上使得这个程序成为一个MINUS向量操作 而不是一个集合操作 这是因为我使用了NOT IN运算符 它只作用于一个列 而不是一些列的集合 这个程序在两个select(选择)语句中安置了一个INTO子句 并构建了两个全局临时表来存储中间结果 然后使用一个NOT IN子句在这两个表上执行MINUS运算符动作 最终生成一个MINUS向量结果

  下面是程序代码 CREATE Procedure sp_MINUS (@query varchar( ) @query varchar( ))AsBegin

  Declare @buildStmt varchar( )Declare @buildStmt varchar( )Declare @pos intDeclare @pos int

  Set nocount on Set @pos = charindex ( FROM upper (@query ))Set @pos = charindex ( FROM upper (@query ))

   在语句中输入into 子句

  Set @buildStmt = SUBSTRING (@query @pos ) + as f into ##t + SUBSTRING (@query @pos len(@query ) @pos + )

  Set @buildStmt = SUBSTRING (@query @pos ) + as f into ##t + SUBSTRING (@query @pos len(@query ) @pos + )

   构建中间全局临时表

  EXEC (@buildStmt )EXEC (@buildStmt )

   执行MINUS操作

  Select f from ##t Where f NOT in (select f from ##t )

   删除表

  Drop table ##t Drop table ##t Set nocount off End

  Go

  应用实例

cha138/Article/program/Oracle/201311/18213

相关参考

知识大全 oracle常用函数汇总

以下是对oracle中的常用函数进行了汇总介绍需要的朋友可以过来参考下   一运算符算术运算符+*/可以在select语句中使用连接运算符||selectdeptno||dnamefromd

知识大全 Oracle通配符,运算符的使用

Oracle通配符,运算符的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  oracle通配

知识大全 Oracle数据库维护常用SQL语句集合(3)

Oracle数据库维护常用SQL语句集合(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  性

知识大全 深入了解Oracle 10g新的多重集运算符

深入了解Oracle10g新的多重集运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Ora

知识大全 EXCEPT和MINUS操作符

SQL实战新手入门:EXCEPT和MINUS操作符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 第二部分 栈、队列和数组[5]

   表达式求值  OperandTypeEvaluateExpression()  //设OPTR和OPND分别为运算符栈和运算数栈//OP为运算符集合  InitSt

知识大全 数据结构考研分类复习真题 第九章 集合[33]

  设有关键码序列试按照最大关键码复写原则绘出相应的阶B+树【山东工业大学二(分)】  在一棵B+树上一般可进行那两种方式的查找运算?【北京科技大学一(分)】  含个叶子结点的阶B树中至少有多少个非叶

知识大全 数据结构考研分类复习真题 第九章 集合[29]

  设一个散列表含hashsize=个表项其下标从到采用线性探查法解决冲突请按以下要求将关键码散列到表中  ()散列函数采用除留余数法用%hashsize(取余运算)将各关键码映像到表中请指出每一个产

知识大全 一句T-SQL语句引发的思考 转帖

一句T-SQL语句引发的思考转帖  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  关于MSSQLS

知识大全 使用T-SQL开始SQL代理工作

使用T-SQL开始SQL代理工作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  系统的存储进程s