>我从报告中的数据库的单列中获取值,如下所示
姓名:拉古 年龄:23 血型:o+ 地址:班加罗尔
但我需要它看起来像这样
姓名:拉古
年龄:23
血型:O+
地址: 班加罗尔
我的意思是每件事都在一行中
首先,强制性建议:创建一个包含姓名/年龄/地址/血型等字段的新表,并在加载到 Cognos 之前解析这些数据。
但是,在紧要关头可以对 cognos 进行文本解析。
假设包含所有数据的字段称为 [field1]。
为每个数据点创建一个查询计算字段。 我将以名称为例:
[员工]
SUBSTRING([field1];POSITION('Name:';[field1])+5);POSITION('Age:';[field1])-POSITION('Name:';[field1])+5)
子字符串解析出 field1 中的数据,从找到"Name:"的位置开始 5 个字符,在"Age:"开始的地方结束(减去起始位置以获得长度)。
[年龄]
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 命令继续到数据行的末尾。