-
1. 主表明细表互变
- 1.1 自动生成历史版本明细
- 2. 需求调研
-
3. excel
-
3.1. 图表易忘点
- 3.1.1 excel2007组合图和次坐标
- 3.1.2 柱状图翻转
- 3.1.3 累加阶梯图实现过程
- 3.2 公式里引用换行符号
- 3.3 公式可改控制excel公式和内容优先显示
- 3.4 打印尺寸
- 3.5 自检原理
- 3.6 快速移动变量
- 3.7 word转excel保留原格式
-
3.1. 图表易忘点
-
4. SQL
- 4.1 32位电量值只记了低16位,统计进位次数还原实际值_用窗口函数
- 4.2 SQL表达式隐含的类型转换
- 4.3 跟踪找表
- 4.4 主表列表规范形如带出明细
- 4.5 正则表达式
- 4.6 SQLServer复制表
- 4.7 写脚本往主表里新增数据,RecordID处理
- 4.8 查询优化
- 4.9 数据库同步:发布订阅
- 4.10 拆分字符函数split
- 4.11 字符串拆分字母和数字
- 4.12 表新增数据
- 4.13 存储过程定义和调用
- 4.14 排序
-
5. 备份和恢复
- 5.1 设计数据*.nxds备份和恢复
-
6. 进阶应用
- 6.1 对接钉钉
- 6.2 解析json
- 6.3 交叉表存数
- 6.4 待办-记录类场景实现过程
- 6.5 已发不能再发控制
- 6.6 通过程序集构建行函数
- 7 web改权限
- 8 无焦扫码
- 9 生成标签犯过的错误
- 10 mqtt快速登录
- 11 配置
- 12. 部署
- 13. 应用作业
- 14. 小技巧
-
15. 坑
- 15.1 表标题和后台表不能重名
- 15.2 提右向扩展的图片明细表间公式不能√前2个清空
- 15.3 超过2列的同值合并
拆分字符函数split
- 2025-01-12 18:20:31
- 微图
- 57
- 最后编辑:微图 于 2025-04-13 16:30:03
- 分享链接
create FUNCTION [dbo].[Split](@String varchar(8000), @Delimiter char(1)) returns @temptable TABLE (a varchar(8000)) as begin declare @idx int declare @slice varchar(8000) select @idx = 1 if len(@String)<1 or @String is null return while @idx!= 0 begin set @idx =charindex(@Delimiter,@String) if @idx!=0 set @slice =left(@String,@idx - 1) else set @slice = @String if(len(@slice)>0) insert into @temptable(a)values(@slice) set @String =right(@String,len(@String)- @idx) if len(@String)= 0 break end return end
调试笔记
declare @s nvarchar(MAX) ='{"data":[{"CreateOrg":-1,"CreateTime":"2021-08-01 00:00:00","CreateUser":2,"EditingUser":0,"LastEditTime":"2022-05-31 23:28:35","LastEditUser":2,"LockStatus":"","RecordID":99,"ReportStatus":"","WorkflowStatus":"","core":"D3","v":"6.3.4.2","上次关账日":"2021-07-30 00:00:00","入库超限率":"0.05","出库超限率":"0.03","启动批次":1,"启动提前调拨":1,"启动检验":1,"当前账期":"2021-08","科目分隔符":"/","订单审核金额":"100000.00","默认显示区间":60,"默认组织":""}],"status":0}' select left(a, charindex(':', a)-1) --2.取分号左边 from dbo.Split(@s, ',') --1.逗号拆分 select replace(left(a, charindex(':', a)-1), '"', '') --3.替换双引号成空 from dbo.Split(replace(@s, '{', '') ,',') --4.把开始@s的{替换成空
拆分取第N个段
declare @s nvarchar(MAX)='1000031@240116016@2024011600002@1' select dbo.fSplitN(@s , '@', 3)
在格子中同样适用
发表评论