表rbd_dtl的RBP_VALUE字段存储着字符串“ALL”和一些字母,现在要将该字段拼成分段的字符串,形如: A-F,H,J-K,N-O,Q-S,U-V,X-Z
源数据如下:
具体规则是:
如果RBP_VALUE=“ALL”,则舍去该值。
如果RBP_VALUE前后都是连续的字母,则取第一个字母和最后一个字母作为一段,中间用横杠,比如“A-F”。
如果RBP_VALUE出现间隔,比如K和N之间缺少L和M,则K之前作为一段,N之后作为一段,两段之间用逗号分隔,形如:“J-K,N-O”。
如果RBP_VALUE前后都不连续,比如H前面缺少G,后面缺少I,则当前值单独作为一段。
集算器写法:
A1:执行SQL。
A2:将A1的RGB_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() 。
相关推荐
### SQL修炼之道:快速掌握SQL的关键知识点 #### 一、SQL的重要性及背景 在现代信息技术领域,**数据**被公认为是信息系统的核心所在。没有数据支撑的计算机应用几乎毫无意义。在信息系统中,大量的数据本质上是以...
- **规范要求**:在进行表关联时,应当使用表别名来简化SQL语句,提高可读性。 - **示例**: ```sql SELECT E.NAME, D.DEPARTMENT_NAME FROM EMPLOYEE E JOIN DEPARTMENT D ON E.DEPARTMENT_ID = D.ID; ``` ##...
- 长SQL语句应分段处理,每个子句和逻辑判断独占一行,子查询使用缩进。 - 禁止使用`SELECT *`,而应指定具体字段,插入语句同样需要列出字段名。 - 定长SQL应定义为`final static`类型,以提高效率,并对有特殊...
1. **命名标志法**:规范的命名有助于代码的可读性和维护性,应遵循一定的规则,如使用Pascal命名法(首字母大写,其余单词首字母小写),使得每个单词都清晰可辨。 2. **数据库命名**: - **数据库名**:全使用...
- 合理使用子查询可以简化存储过程的逻辑,但过多使用会降低性能。 **9. 常用写法** - **9.1 XML解析**:使用XQuery等功能解析XML数据。 - **9.2 检查表是否有数据**:通过COUNT(*)等函数实现。 - **9.3 检查变量...
- **命名约定**:表名和字段名使用小写字母,系统保留字、内置函数和SQL保留字使用大写字母。 - **格式化**:在连接符前后添加空格,每个WHERE子句条件独立一行,复杂的SQL语句使用别名简化引用,避免使用通配符(*...
在动态SQL中使用绑定变量,可以避免因SQL语句重编译导致的性能下降,同时减少解析开销。 11. **适当冗余与规范化** 虽然规范化可以减少数据冗余,但过度规范化可能导致过多的连接操作,影响性能。在确保数据完整...
要获取特定分段的URI,可以使用`$this->uri->segment(n,default)`,其中n是分段编号,default是默认值。 辅助函数在CI中扮演着重要角色,例如`$this->load->helper('url')`加载URL辅助库,提供`anchor()`、`base_...