Returning Updated Rows 返回更新的行
(page 280)
In Listing 9-7, just four rows were returned even though there are rows for other weeks. The clause
RETURN UPDATED ROWS controls this behavior and provides the ability to limit the cells returned by the
SQL statement. Without this clause, all rows are returned regardless of whether the rules updates the
cells or not.
The rule in Listing 9-7 updates only four cells and other cells are untouched, and so just
four rows are returned.
在列表9-7中,只返回了四行,尽管有其它week的行。子句RETURN UPDATED
ROWS控制该行为且为SQL语句提供限制返回单元格的能力。没有这个子句,将返回所有行,不论规则是否更新了单元格。
在列表9-7的规则只更新了四行而其它的单元格没有触及,因此只返回了四行。
What happens if you don’t specify the clause return updated rows ? Listing 9-9 shows the output
without the return updated rows clause. The output in this listing shows that both updated and non-
updated rows are returned from the SQL statement. The rule updates cells for the weeks 1, 52, and 53
only, but the output rows in Listing 9-9 shows rows with other column values such as 2, 3, 4, too.
如果你没有指定子句 return updated rows 会怎样?列表9-9展示了没有 return updated rows
子句的输出。这个列表的输出显示从SQL语句中更新和没有更新的行都返回了。规则只更新单元格weeks
1,52和53,但是列表9-9的输出显示其它的列值如2,3,4的行也输出了。
Listing 9-9. SQL without RETURN UPDATED ROWS
1 select product, country, year, week, sale
2 from sales_fact
3 where country in ('Australia') and product ='Xtend Memory'
4 model
5 partition by (product, country)
6 dimension by (year, week)
7 measures ( sale)
8 rules(
9 sale [ year in (2000,2001), week in (1,52,53) ] order by year, week
10 = sale [cv(year), cv(week)] * 1.10
11 )
12* order by product, country,year, week
PRODUCT COUNTRY YEAR WEEK SALE
------------ ---------- ----- ---- ----------
...
Xtend Memory Australia 2000 50 21.19
Xtend Memory Australia 2000 52 74.20
Xtend Memory Australia 2001 1 101.49
Xtend Memory Australia 2001 2 118.38
Xtend Memory Australia 2001 3 47.24
Xtend Memory Australia 2001 4 256.70
...
The clause RETURN UPDATED ROWS is applicable to statements using positional notation also.
In the
Listing 9-10, a rule using a positional notation is shown, inserting a row. Note that there are more
rows in the table matching with the predicate country in ('Australia') and product ='Xtend
Memory'. But, just one row is returned as only one cell is inserted by the rule in line 9. Essentially,
RETURN UPDATED ROWS clause is a limiting clause—it only fetches the rows modified by the rule.
子句RETURN UPDATED
ROWS也可以应用于使用位置标记的语句。
在列表9-10中,展示了一使用位置标记的规则,插入一行。注意表中有多行匹配谓词country in
('Australia') and product ='Xtend
Memory'。但是,只返回了一行,作为按第9行规则插入的唯一单元格。本质上,RETURN UPDATED
ROWS子句是一限定子句--它仅取按规则修改的行。
Listing 9-10. RETURN UPDATED ROWS and UPSERT
1 select product, country, year, week, sale
2 from sales_fact
3 where country in ('Australia') and product ='Xtend Memory'
4 model return updated rows
5 partition by (product, country)
6 dimension by (year, week)
7 measures ( sale)
8 rules(
9 sale [2002, 1] = 0
10 )
11 * order by product,country,year, week
/
PRODUCT COUNTRY YEAR WEEK SALE
------------ ---------- ----- ---- ----------
Xtend Memory Australia 2002 1 .00
分享到:
相关推荐
本章“《Pro Oracle SQL》CHAPTER 9 The Model Clause”重点讲解了Model子句的使用,特别是其在聚合操作中的应用。 Model子句的基本结构允许用户指定一个数据区域(即模型区域),在这个区域内对数据进行计算和操作...
《Pro Oracle SQL》一书的第9章深入探讨了Oracle数据库中的“Model”子句,这一章节重点关注了9.5节——评估顺序。在Oracle SQL中,Model子句是一种高级的行处理工具,用于进行复杂的行计算和模拟迭代过程,比如解决...
《Pro Oracle SQL》一书中的第9章详细探讨了Oracle SQL中的“模型”子句,这一章的主题是“9.7 迭代”。在Oracle数据库中,模型子句是一种强大的功能,它允许用户进行复杂的多步骤计算,尤其适用于处理数组、矩阵...
《Pro Oracle SQL》一书中的第9章详细探讨了Oracle SQL中的“模型”子句,这一章重点关注了位置引用和符号引用的概念。在Oracle数据库中,模型子句是一种强大的工具,用于处理复杂的行列操作,例如数据建模、数据...
《Pro Oracle SQL》是Oracle数据库查询的一本权威指南,其中第9章主要讲解了如何使用Model子句进行行间引用,这是一个高级SQL特性,用于处理复杂的行与行之间的计算和逻辑操作。9.2章节专注于Inter-Row Referencing...
《Pro Oracle SQL》一书的第9章,重点关注了使用"Model"子句进行性能调优的方法。在Oracle数据库中,Model子句是一种强大的功能,它允许数据建模和复杂的计算,尤其适用于解决多步骤计算问题,如模拟、预测和序列...
《Pro Oracle SQL》一书的第七章深入探讨了高级分组技术,特别是关于`HAVING`子句的部分。`HAVING`子句在SQL查询中扮演着至关重要的角色,它用于在聚合函数的结果集上设置条件,这与`WHERE`子句有所不同。`WHERE`...
Pro Oracle SQL unlocks the power of SQL in the Oracle Database—one of the most potent SQL implementations on the market today. To master it requires a three-pronged approach: learn the language ...
Walking the Tree: From the Top Down 5-9 Ranking Rows with the LEVEL Pseudocolumn 5-10 Formatting Hierarchical Reports Using LEVEL and LPAD 5-11 Pruning Branches 5-13 Summary 5-14 Practice 5 Overview 5...
### Oracle SQL 优化与调优技术详解:深入理解SQL提示 #### 一、SQL提示的定义及作用 在Oracle数据库的SQL语句中,SQL提示(Hints)是一种用于指导优化器选择特定执行计划的特殊注释语法。这些提示能够帮助数据库...
Clause-view个人中心、设置常用的itemview
Oracle和SqlServer语法区别 Oracle和SqlServer是两种流行的关系型数据库管理系统,它们之间存在着一些语法区别。了解这些区别对于开发者来说非常重要,因为它可以帮助他们更好地迁移到新的数据库管理系统。下面将...
资源分类:Python库 所属语言:Python 资源全名:clause-1.1.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
### ORACLE和SQL Server的语法区别 #### 一、概述 本文主要介绍Oracle与SQL Server在SQL语言层面的异同之处,重点在于Transact-SQL(T-SQL)与PL/SQL之间的区别,并提供了一些迁移策略。对于希望将现有的Oracle...
Oracle SQL查考手册是一部关于Oracle数据库查询语言的重要参考资料,它涵盖了运算符、表达式、条件、函数以及常见的SQL DDL(Data Definition Language)和Clause等内容。这篇总结将深入解析这些核心概念,帮助读者...
Chatopera 语义理解系统:机器学习,聊天机器人,意图识别clause-osc.zip
(b) the name of the table, the names of the table's attributes, the data types of the table's attributes, the formats of the table's attributes, and the maximum number of rows that the table can have...