Sub test1() Dim h Dim j As Integer j = 0 '用于辅助循环的进行,可以在拆分行获取下一个需要拆分单元格的行号 'Application.ScreenUpdating = False 'For i = 1 To Range("a65536").End(xlUp).Row For i = 1 To 50 '循环结束值至少等于拆分后的行数,否则会没有分完就跳出循环,导致最后部分无法拆分 'MsgBox
有时候一张表的一个字段是以逗号分割的一个字符串,分割的数字是明细表的主键id. 关联明细表查询可以这样做: ) ) --这是把areanos字段赋值给@areanos变量 set @areanos='1,2,3' --将拼接的SQL脚本赋值给变量 set @str='select * from area where areano in ('+@areanos+') order by areano' --调用系统存储过程,执行SQL exec sp_executesql @str
由于很多业务表因为历史原因或者性能原因,都使用了违反第一范式的设计模式,即同一个列中存储了多个属性值.这种模式下,应用常常需要将这个列依据分隔符进行分割,并得到列转行的结果:这里使用substring_index函数进行处理 建表语句: DROP table if EXISTS tbl_name; CREATE TABLE tbl_name( id ) not null auto_increment, userName ) not null, PRIMARY KEY(id) ) ENGINE D
Oracle把逗号分割的字符串转换为可放入in的条件语句的字符数列 前台传来的字符串:'589,321' SELECT*FROM TAB_A T1 WHERE T1.CODE IN ( SELECT REGEXP_SUBSTR('589,321','[^,]+', 1, LEVEL) FROM DUAL CONNECT BY REGEXP_SUBSTR('SMITH,ALLEN,WARD,JONES', '[^,]+', 1, LEVEL) IS NOT NULL )
前言: 由于很多业务表因为历史原因或者性能原因,都使用了违反第一范式的设计模式.即同一个列中存储了多个属性值(具体结构见下表). 这种模式下,应用常常需要将这个列依据分隔符进行分割,并得到列转行的结果. 表数据: ID Value 1 tiny,small,big 2 small,medium 3 tiny,big 期望得到结果: ID Value 1 tiny 1 small 1 big 2 small 2 medium 3 tiny 3 big 总结: 这种方法的缺点在于,我们需要一个拥有连