利用SQL SERVER 2008提取字段列中多个中括号里的内容,如:上海启限公司[862NUM53](2009年04日)[2765NUM5]AASSW。
想要解析出的结果如下:
列一 / 列二
--------------
862 / 53
2765 / 5
请问该如何实现,一定是在SQL2008中。
利用SQL SERVER 2008提取字段列中多个中括号里的内容?
答案:2 悬赏:80 手机版
解决时间 2021-02-24 17:49
- 提问者网友:箛茗
- 2021-02-24 03:26
最佳答案
- 五星知识达人网友:十年萤火照君眠
- 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
--可能有点问题,你调试下吧
--你现在一个字段中有两个括号,每个括号中用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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯