【发布时间】:2015-11-14 15:54:54
【问题描述】:
我有一个字符串返回一些静态文本来表示下一个元素将在哪里显示。它基本上是一个由一堆标签+文本值组成的连接字段,在这个数据库的架构中没有其他地方可以存在。
输出看起来像
产品:productname 公司:productcompany 类型:producttype 网站:productsite
其中任何一个都可以是空白,但 Product:/Company:/Type:/Site: 的“标签”将始终存在。我想撕开字符串,这样我就可以为每个字符串创建列。
我相信我可以在这里做子字符串,但我没有成功正确地拉开字符串。
我尝试了一些没有成功的事情!
select
impl_nm,
instr(impl_nm, 'Product:', 1,1)+1 as Start,
instr(impl_nm, 'Company:', 1, 2) as End
--substr(val, instr(impl_nm, 'Product: ', 1,1) + 1, decode(instr(impl_nm, 'Company:',1,2),0,length(impl_nm)+1,instr(impl_nm, 'Company:',1,2) ) - instr(impl_nm, 'Product: ', 1,1)-1 )
from products
【问题讨论】:
-
您使用的是哪个 DBMS?后格雷斯?甲骨文?
-
它是一个 PDA(Netezza 环境,IBM 纯数据分析)我敢肯定,到目前为止,我一直在使用 oracle 函数编写大部分查询,但没有任何问题