这里有个药品的数据库,需要把药品的剂量和计量单位分离开
自定义个函数,里面是正则获取对应字符的,或者你干脆写一个存储过程来批量处理也可以的
使用sql进行分列,网上有相似案例,可以参考修改一下
给你一个思路:
第一步:先通过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和上一步求到的索引截取出需要的数字和单位
建议你不要通过数据库sql直接拆分,而是写个程序,通过程序进行拆分,或者把所有数据导到Excel中,用excel拆分,拆分完再导进去
你导入数据得时候只导入需要得几个字段不就行了嘛
可以写个程序,获取到spr字段中的所有数据之后,截取第一个*号前的字符串,然后进行截取,将数字部分当成一部分,字母当成另一部分