我有一个关于iseries(V6R1)的表格,如下所示:
REF BOOKING NAME
--------------------------------------------------------------
032 220 3564 1354789 Peter Parker
att. Lois 1156872 Clark Kent
checklist no. 1 864723 Matt Murdoch
我正在尝试将列REF拆分为3个新列,即空格字符的拆分。拆分的结果应该是
REF1 REF2 REF3 BOOKING NAME
---------------------------------------------------------------------------
032 220 3564 1354789 Peter Parker
att. Lois 1156872 Clark Kent
checklist no. 1 864723 Matt Murdoch
我一直在关注POSSTR,CHARINDEX,SUBSTR,但无法使其发挥作用。将不胜感激。
答案 0 :(得分:2)
没有一种简单的方法可以做到这一点。以下工作,但将其延伸超过3列将是非常难看。
如果必须经常这样做,请考虑构建一个返回特定事件的UDF。
select ref
, substr(ref
,1
,locate(' ',ref,1)
) as ref1
, substr(ref
,locate(' ',ref,1) + 1
,locate(' ',ref, locate(' ',ref,1) + 1)
- locate(' ',ref,1)
) as ref2
, substr(ref
, locate(' ',ref, locate(' ',ref,1) + 1) + 1
) as ref3
from mytable