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

简化SQL计算之字母分段

    博客分类:
  • DB
阅读更多

rbd_dtlRBP_VALUE字段存储着字符串“ALL”和一些字母,现在要将该字段拼成分段的字符串,形如: A-F,H,J-K,N-O,Q-S,U-V,X-Z

   源数据如下:



 

具体规则是:

如果RBP_VALUE=ALL”,则舍去该值。

如果RBP_VALUE前后都是连续的字母,则取第一个字母和最后一个字母作为一段,中间用横杠,比如“A-F”。

如果RBP_VALUE出现间隔,比如KN之间缺少LM,则K之前作为一段,N之后作为一段,两段之间用逗号分隔,形如:“J-K,N-O”。

如果RBP_VALUE前后都不连续,比如H前面缺少G,后面缺少I,则当前值单独作为一段。

 

 

  集算器写法



 

        A1:执行SQL

          A2:A1RGB_VALUE按照字母表对齐,部分结果如下:



 

        A3:对A2进行分组,RBD_VALUE等于null时分一组,不等于null时再分一组。@o表示归并式分组,只对前后数据进行比较。结果如下:



 

        A4:选出非空的组。

          A5:根据组内成员个数拼凑字符串。~.m(-1)表示取当前组的最后一条记录。计算结果如下:



 

        A6:用逗号合并集合成员,即:A-F,H,J-K,N-O,Q-S,U-V,X-Z

         事实上只需要取出RBD_VALUE就可以了,代码也可以合并为一句:

 

myDB1.query("select RBD_VALUE from rbd_dtl").(RBD_VALUE).align(26.(char(64+~))).group@o(!~).select(~(1)).(~(1)+if(~.len()>1,"-"+~.m(-1))).string@d()

  • 大小: 27.4 KB
  • 大小: 27.7 KB
  • 大小: 30.4 KB
  • 大小: 45.8 KB
  • 大小: 6.1 KB
5
1
分享到:
评论

相关推荐

    修炼sql快速掌握sql

    ### SQL修炼之道:快速掌握SQL的关键知识点 #### 一、SQL的重要性及背景 在现代信息技术领域,**数据**被公认为是信息系统的核心所在。没有数据支撑的计算机应用几乎毫无意义。在信息系统中,大量的数据本质上是以...

    DBA对Oracle SQL编写规范的总结

    - **规范要求**:在进行表关联时,应当使用表别名来简化SQL语句,提高可读性。 - **示例**: ```sql SELECT E.NAME, D.DEPARTMENT_NAME FROM EMPLOYEE E JOIN DEPARTMENT D ON E.DEPARTMENT_ID = D.ID; ``` ##...

    SQL编码规范(学习模板)

    - 长SQL语句应分段处理,每个子句和逻辑判断独占一行,子查询使用缩进。 - 禁止使用`SELECT *`,而应指定具体字段,插入语句同样需要列出字段名。 - 定长SQL应定义为`final static`类型,以提高效率,并对有特殊...

    Sql server数据库开发性能提高规范

    1. **命名标志法**:规范的命名有助于代码的可读性和维护性,应遵循一定的规则,如使用Pascal命名法(首字母大写,其余单词首字母小写),使得每个单词都清晰可辨。 2. **数据库命名**: - **数据库名**:全使用...

    数据库开发规范(SQL_SERVER篇)2012最新版

    - 合理使用子查询可以简化存储过程的逻辑,但过多使用会降低性能。 **9. 常用写法** - **9.1 XML解析**:使用XQuery等功能解析XML数据。 - **9.2 检查表是否有数据**:通过COUNT(*)等函数实现。 - **9.3 检查变量...

    Oracle存储过程开发规范与技巧

    - **命名约定**:表名和字段名使用小写字母,系统保留字、内置函数和SQL保留字使用大写字母。 - **格式化**:在连接符前后添加空格,每个WHERE子句条件独立一行,复杂的SQL语句使用别名简化引用,避免使用通配符(*...

    优化Oracle库表设计的若干方法

    在动态SQL中使用绑定变量,可以避免因SQL语句重编译导致的性能下降,同时减少解析开销。 11. **适当冗余与规范化** 虽然规范化可以减少数据冗余,但过度规范化可能导致过多的连接操作,影响性能。在确保数据完整...

    php框架学习笔记.doc

    要获取特定分段的URI,可以使用`$this->uri->segment(n,default)`,其中n是分段编号,default是默认值。 辅助函数在CI中扮演着重要角色,例如`$this->load->helper('url')`加载URL辅助库,提供`anchor()`、`base_...

Global site tag (gtag.js) - Google Analytics