知识大全 在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中的常用函数进行了汇总介绍需要的朋友可以过来参考下 一运算符算术运算符+*/可以在select语句中使用连接运算符||selectdeptno||dnamefromd
Oracle通配符,运算符的使用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! oracle通配
Oracle数据库维护常用SQL语句集合(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 性
深入了解Oracle10g新的多重集运算符 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Ora
SQL实战新手入门:EXCEPT和MINUS操作符 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
表达式求值 OperandTypeEvaluateExpression() //设OPTR和OPND分别为运算符栈和运算数栈//OP为运算符集合 InitSt
设有关键码序列试按照最大关键码复写原则绘出相应的阶B+树【山东工业大学二(分)】 在一棵B+树上一般可进行那两种方式的查找运算?【北京科技大学一(分)】 含个叶子结点的阶B树中至少有多少个非叶
设一个散列表含hashsize=个表项其下标从到采用线性探查法解决冲突请按以下要求将关键码散列到表中 ()散列函数采用除留余数法用%hashsize(取余运算)将各关键码映像到表中请指出每一个产
一句T-SQL语句引发的思考转帖 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 关于MSSQLS
使用T-SQL开始SQL代理工作 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 系统的存储进程s