我从报告中的这样一个数据库的单一列中获取价值
姓名:Raghu年龄:23岁血型:o +地址:班加罗尔
但我需要它看起来像这样
姓名:Raghu
年龄:23
血型:o +
地址:班加罗尔
我的意思是新的一行
答案 0 :(得分:0)
首先,强制性建议:使用名称/年龄/地址/血型等字段创建一个新表,并在加载到Cognos之前解析此数据。
然而,可以在精简版中进行文本解析。
让我们假设你的字段中包含所有数据的字段叫做[field1]。
为每个数据点创建“查询计算”字段。我将使用名称作为例子:
[雇员]
SUBSTRING([field1];POSITION('Name:';[field1])+5);POSITION('Age:';[field1])-POSITION('Name:';[field1])+5)
子字符串解析来自field1的数据,在找到'名称后出现5个字符:'并结束在哪里'年龄:'开始(减去起始位置以获得长度)。
[年龄]
SUBSTRING([field1];POSITION('Age:';[field1])+4);POSITION('blood group:';[field1])-POSITION('Age:';[field1])+4)
年龄与格式相似。你减去4而不是5,因为'年龄:'是四个字符。
使用该方法获取除最后一列之外的所有列。让我们说最后一栏是'地址:',像这样捕捉:
SUBSTRING([field1];POSITION('Address:';[field1])+8);-1)
-1将告诉SUBSTRING命令继续到数据行的末尾。