永发信息网

利用SQL SERVER 2008提取字段列中多个中括号里的内容?

答案:2  悬赏:80  手机版
解决时间 2021-02-24 17:49
  • 提问者网友:箛茗
  • 2021-02-24 03:26
利用SQL SERVER 2008提取字段列中多个中括号里的内容,如:上海启限公司[862NUM53](2009年04日)[2765NUM5]AASSW。
想要解析出的结果如下:
列一 / 列二
--------------
862 / 53
2765 / 5
请问该如何实现,一定是在SQL2008中。
最佳答案
  • 五星知识达人网友:十年萤火照君眠
  • 2021-02-24 03:36
--你要把一行中的字段两个括号中拆成两列,这个就需要先把这个字段拆成两行。我就不在这做了,用--charindex和substring完成。
--你现在一个字段中有两个括号,每个括号中用NUM隔开两个数字,这样,我把这个字段拆--成四列  分别是 862/53/2765/5,假设你这个字段叫COLUMN
select SUBSTRINg(COLUMN,CHARINDEX('[',COLUMN)+1,CHARINDEX('NUM',COLUMN)-CHARINDEX('[',COLUMN)-1)  as [列1],SUBSTRINg(COLUMN,CHARINDEX('NUM',COLUMN)+3,CHARINDEX(']',COLUMN)-CHARINDEX('NUM',COLUMN)-3)  as [列2],SUBSTRINg(COLUMN,CHARINDEX('[',COLUMN,CHARINDEX('(',COLUMN))+1,CHARINDEX('NUM',COLUMN,CHARINDEX('(',COLUMN))-CHARINDEX('[',COLUMN,CHARINDEX('(',COLUMN))-1)  as [列3],SUBSTRINg(COLUMN,CHARINDEX('NUM',COLUMN,CHARINDEX('(',COLUMN))+3,CHARINDEX(']',COLUMN,CHARINDEX('(',COLUMN))-CHARINDEX('NUM',COLUMN,CHARINDEX('(',COLUMN))-3)  as [列4]
from table
--可能有点问题,你调试下吧
全部回答
  • 1楼网友:举杯邀酒敬孤独
  • 2021-02-24 04:04
sql server 2008 我也是64位,用安装盘装了半天,也没装上,最后用了my sql
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯