myyyss_yw 2022-09-15 09:29 采纳率: 33.3%
浏览 75
已结题

SqlServer数据拆分

这里有个药品的数据库,需要把药品的剂量和计量单位分离开

img


就这样的,因为药品数量太大,手动分离效率太低了,各位有没有什么办法?

  • 写回答

6条回答 默认 最新

  • 一把编程的菜刀 2022-09-15 10:29
    关注

    自定义个函数,里面是正则获取对应字符的,或者你干脆写一个存储过程来批量处理也可以的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 程序yang 全栈领域优质创作者 2022-09-15 09:50
    关注

    使用sql进行分列,网上有相似案例,可以参考修改一下

    评论
  • sbbbbbbbbbbbbb 2022-09-15 10:26
    关注

    给你一个思路:
    第一步:先通过CHARINDEX分割出乘号前半部分的数字和单位,分隔符使用字段里面的乘号,简单sql如下
    select SUBSTRING(spr, 0, case when CHARINDEX('', spr) = 0 then LEN(spr)+1 else CHARINDEX('', spr) end) from test
    第二步:使用正则表达式匹配数字部分sqlserver有个函数patindex,可以找到数字的所在的索引。sql我就不写了,就是嵌套提取
    第三步:然后通过SUBSTRING和上一步求到的索引截取出需要的数字和单位

    评论 编辑记录
  • 神谕风行 2022-09-15 13:32
    关注

    建议你不要通过数据库sql直接拆分,而是写个程序,通过程序进行拆分,或者把所有数据导到Excel中,用excel拆分,拆分完再导进去

    评论
  • yy64ll826 2022-09-15 19:45
    关注

    你导入数据得时候只导入需要得几个字段不就行了嘛

    评论
  • 一起随缘 2022-09-16 09:28
    关注

    可以写个程序,获取到spr字段中的所有数据之后,截取第一个*号前的字符串,然后进行截取,将数字部分当成一部分,字母当成另一部分

    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 9月28日
  • 已采纳回答 9月20日
  • 创建了问题 9月15日

悬赏问题

  • ¥30 计算机网络子网划分路由模拟操作
  • ¥15 MATLAB的画图问题
  • ¥15 c语言用fopen_s成功打开文件之后闪退
  • ¥20 用C++完成,并且运用数组
  • ¥30 求解电力系统潮流计算结果不收敛问题
  • ¥15 某易易盾点选data解析逆向
  • ¥15 系统崩溃,关于订单的处理
  • ¥15 datax-web连接hive为数据源时发生报错,如何解决?
  • ¥15 plink在进行gwas分析时总读取不到表型
  • ¥20 数据结构与c语言的实践内容