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

简化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
分享到:
评论

相关推荐

    2009达内SQL学习笔记

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

    Access 2000数据库系统设计(PDF)---001

    23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化 数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 ...

    Access 2000数据库系统设计(PDF)---002

    23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化 数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 ...

    Access 2000数据库系统设计(PDF)---018

    23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 ...

    Access 2000数据库系统设计(PDF)---003

    23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化 数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 ...

    Access 2000数据库系统设计(PDF)---011

    23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 ...

    Access 2000数据库系统设计(PDF)---020

    23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 ...

    Access 2000数据库系统设计(PDF)---009

    23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化 数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 ...

    Access 2000数据库系统设计(PDF)---012

    23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 ...

    Access 2000数据库系统设计(PDF)---015

    23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 ...

    Access 2000数据库系统设计(PDF)---027

    23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 ...

    Access 2000数据库系统设计(PDF)---025

    23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 ...

    Access 2000数据库系统设计(PDF)---026

    23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 ...

    Access 2000数据库系统设计(PDF)---029

    23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 ...

    asp.net知识库

    SQL server 2005中新增的排序函数及应用 根据基本表结构及其数据生成 INSERT ... 的 SQL 简便的MS SQL 数据库 表内容 脚本 生成器 将表数据生成SQL脚本的存储过程 直接从SQL语句问题贴子数据建表并生成建表语句的...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。  拉里•埃里森  就业前景 从就业与择业的...

    JAVA上百实例源码以及开源项目源代码

    Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用...

    超级有影响力霸气的Java面试题大全文档

    面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性:  多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化...

    java 面试题 总结

    面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多...

    JAVA上百实例源码以及开源项目

    两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将...

Global site tag (gtag.js) - Google Analytics