`
datamachine
  • 浏览: 163389 次
社区版块
存档分类
最新评论

简化SQL式计算之固定排序

阅读更多

   固定排序不是按照某个字段升序或降序排序,而是有着固定的顺序,比如按照2,3,1的顺序排序,或者按照"DSGC","TAS","GC","HU"的顺序来排序。

   如果允许在数据库建一张表来存储依据,那就可以用join语句来实现排序。但很多时候排序依据是变动的,或者数据库不能建表,这时就需要先unionjoin,或者用decode函数。排序依据比较短的时候可以这样做,但排序依据有时候很长,会导致手工书写很长的union字符串和decode字符串,出错率会很高。

   我们用例子来了解一下集算器的实现方式。

   表LIQUORS记录着大量的酒品库存,现在需要按照固定的LID顺序排序,比如“2,1,3,4,5...”。表LIQUORS的部分数据如下:



 

集算器代码:



 

A1:从数据库取数,部分结果如下:




A2=A1.align@s([2,1,3,4,5], LID)这句代码将A1对象中的LID字段,按照2,1,3,4,5的顺序排列,结果如下:



 

上述排序依据可以是外部参数,比如定义一个参数arg1,将A2中的代码改为:=A1.align(arg1, LID)。执行脚本(也可以通过JAVA或报表调用),在参数界面输入:[2,1,3,4,5],如下:



 

计算后结果和之前完全一样。

 

集算器不仅能解决固定排序的问题,还能进行固定分组,可参考《集算器简化SQL式计算之固定分组》  

 

另外,集算器可被报表工具或java程序调用,调用的方法也和普通数据库相似,使用它提供的JDBC接口即可向java主程序或报表工具返回ResultSet形式的计算结果,具体方法可参考相关文档。

  • 大小: 40.7 KB
  • 大小: 10.9 KB
  • 大小: 34.6 KB
  • 大小: 35 KB
  • 大小: 19.5 KB
分享到:
评论

相关推荐

    Microsoft SQL Server 2008技术内幕:T-SQL查询_源代码及附录.zip

    SQL Server 2008引入了窗口函数,如RANK()、ROW_NUMBER()、LAG()和LEAD(),这些函数允许在数据集的行之间进行计算,而不局限于单行或固定的行集。 5. **存储过程和触发器**: T-SQL允许创建存储过程,这是一种预...

    通过分析SQL语句的执行计划优化SQL

    6. **物化视图**:对于固定查询模式,可以创建物化视图预先计算结果,加速查询。 五、使用Oracle的优化工具 Oracle提供了一些内置工具,如`SQL Tuning Advisor`和`Automatic Workload Repository (AWR)`,它们可以...

    SQL server 2000自学教程

    2. 角色管理:使用固定服务器角色和固定数据库角色简化权限管理。 3. 权限控制:GRANT、DENY、REVOKE命令用于授予、拒绝和撤销访问权限。 4. 触发器:创建触发器实现数据更改时的自动响应和规则检查。 七、备份与...

    如何整理SQL Server输入数据

    接着,对于邮政编码等固定长度的数据,将其转换为char类型,如char(5)和char(4),这样可以确保每个条目占用相同的空间,提高存储效率,并方便进行比较和排序。 对于难以理解或用途不明的varchar列,为了确定其最大...

    sql server2005 数据库习题及答案

    其他四种方法展示了更复杂的技巧,例如使用`COLUMNPROPERTY`函数检查列是否隐藏或计算得到,利用`CASE`语句根据条件选择性地展示列,创建视图简化查询过程,以及使用动态SQL构建灵活的查询语句。 #### 4. 查询被...

    sql server术语学习表

    **定义**:`SQL Expression`是指在SQL语句中使用的计算公式。 **用途**:用于计算和生成数据。 #### SQL Query (SQL查询) **定义**:`SQL Query`是指用于检索数据的SQL语句。 **用途**:从数据库中提取所需的...

    关系数据库SQL语言.rar

    关系型数据库基于关系模型,其中数据以表格的形式存储,每个表格有固定的列(字段)和行(记录),并可通过主键和外键实现表之间的关联。 2. SQL基本语法:SQL语句通常分为DQL(数据查询语言)、DDL(数据定义语言...

    SQL语法大全中文版

    SQL(Structured Query Language)是用于管理和操作关系数据库的标准语言,其语法丰富多样,适用于数据查询、更新、插入和删除等操作。"SQL语法大全中文版" 提供了全面的SQL语法规则,帮助用户深入理解和掌握这个...

    SQL学习总结

    ### SQL学习总结知识点 #### 一、SQL基本操作总结 **1. 新建数据库** - 使用`CREATE DATABASE database_name;`来创建一个新的数据库。 - 示例:`CREATE DATABASE my_new_database;` **2. 更改数据库** - 使用`...

    新手常用SQL语句

    1. **窗口函数(Window Functions)**: 如RANK(), ROW_NUMBER(), LAG()和LEAD(),在分组后进行排序和计算。 2. **自连接(Self Join)**: 表自身与其自身的连接,用于处理复杂的关系。 3. **子查询优化(Subquery ...

    ORACLE_SQL优化

    然而,在实际应用过程中,随着数据库中数据量的增长,系统的响应速度成为了衡量系统性能的关键指标之一。SQL语句优化是系统优化的重要组成部分,尤其是在处理大量数据时,优秀的SQL语句能够显著提升系统的性能。 ...

    使用 SQLServer1到3章

    在“使用SQL Server管理和查询数据(SQL Base)1~~~~~~3章”这个压缩包中,包含了有关SQL Server数据库管理系统的基础知识,特别关注了SQL语言的基本应用。SQL(Structured Query Language)是一种用于管理关系数据库...

    2009达内SQL学习笔记

    提倡关键字大写,便于阅读和调式。 “!”在SQL环境下执行Unix命令。 SQL语句是由简单的英语单词构成;这些英语单词称为关键字/保留字,不做它用。SQL由多个关键字构成。 SQL语句由子句构成,有些子句是必须的,...

    如何提高SQL查询效率

    在数据库操作中,SQL查询是极为常见的操作之一,而查询性能的优化对于提升系统的响应速度、改善用户体验至关重要。本文将根据提供的内容,深入解析提高SQL查询效率的关键方法与注意事项。 #### 1. 避免全表扫描 全...

    SQL语句教程

    SQL语句通常遵循固定的语法结构,包括子句、条件和运算符。 2. SELECT查询: - `SELECT`语句是最常用的部分,用于从表中提取数据。你可以选择指定的列,例如`SELECT column1, column2 FROM table;` - 使用`WHERE`...

    SQL自学通

    SQL(Structured Query Language)是用于管理和操作关系数据库的标准语言,它是数据分析师、数据库管理员和程序员必备的技能之一。"SQL自学通"这个资料很可能是为了帮助初学者掌握SQL的基础知识和高级技巧而设计的。...

    SQL数据类型详解(常见的数据库)

    ### SQL数据类型详解 #### 一、引言 在数据库设计和开发过程中,正确选择数据类型对于确保数据的准确性和高效存储至关重要。本篇文章将详细解释常见数据库如Microsoft Access、MySQL以及SQL Server所使用的数据...

    使用over函数实现递归汇总计算

    - **固定行数范围**:`OVER (ORDER BY salary ROWS BETWEEN 50 PRECEDING AND 150 FOLLOWING)` 表示当前行之前的 50 行和之后的 150 行作为计算窗口。 - **值范围**:`OVER (ORDER BY salary RANGE BETWEEN 50 ...

Global site tag (gtag.js) - Google Analytics