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保留原格式
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. 部署
12.1 部署习惯
12.2 开机启动
13. 应用作业
14. 小技巧
14.1 日期选择
14.2 动态公式
14.3 明细表精简
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)


在格子中同样适用

发表评论
评论通过审核后显示。
  • 在线客服
  • 关注微信
    • 客服帆帆
    • 客服娜娜
    • 客服美美
    • 客服龙龙
  • 扫一扫关注微信