我觉得这应该很简单,但是我一直在努力寻找正确的术语,请多多包涵。
我有两列service discovery
和let client = await helper.getClientForOrg(orgName);
let channel = client.newChannel(channelName);
// assign orderer to channel
channel.addOrderer(client.getOrderer(ordererName));
// assign peers to channel
peers.forEach(function (peerName) {
channel.addPeer(client.getPeer(peerName));
});
let request = {
targets: peers,
chaincodeId: chaincodeName,
fcn: functionName,
args: args,
transientMap: transient
};
logger.debug("Make query");
let response_payloads = await channel.queryByChaincode(request);
,它们是数组
如果我做一个简单的
timestamp
然后我将得到以下结果:
voltages
但是我想拆分SELECT timestamp, voltages FROM table
数组,以便其数组中的每个元素都是其自己的列。
|timestamp | voltages |
|1544435470 |3.7352,3.749,3.7433,3.7533|
|1544435477 |3.7352,3.751,3.7452,3.7533|
|1544435484 |3.7371,3.749,3.7433,3.7533|
|1544435490 |3.7352,3.749,3.7452,3.7533|
|1544435497 |3.7352,3.751,3.7452,3.7533|
|1544435504 |3.7352,3.749,3.7452,3.7533|
我知道我可以这样:
voltages
但是我需要能够以编程方式执行此操作,而不是将它们列出。
我缺少明显的东西吗?
答案 0 :(得分:0)
如果您有固定长度的数组,这应该可以满足您的目的。
您需要首先将每个数组元素分解为自己的行。您可以通过以下方式使用UNNEST
运算符进行此操作:
SELECT timestamp, volt
FROM table
CROSS JOIN UNNEST(voltages) AS t(volt)
使用结果表,您可以参考Gordon Linoff here的答案将具有相同时间戳的多行转换为多列