我的表格包含ID
DOB
AMOUNT
RECEIVER_NAME
SENDER_NAME
SETTLE_FEE
列。
样本数据
ID DOB AMOUNT RECEIVER_NAME SENDER_NAME SETTLE_FEE
-------------------------------------------------------------------
1 10-06-1990 100 Jose Benn 12
2 12-06-1990 200 Jim Mike 12
3 10-06-1990 300 Kate Benn 12
4 12-06-1990 100 Amy Mike 12
5 10-06-1990 200 Alison Benn 12
6 12-06-1990 300 Mary Mike 12
预期结果
ID DOB SENDER_NAME
---------------------------
1 10-06-1990 Benn
|--------AMOUNT RECEIVER_NAME SETTLE_FEE
100 Jose 12
300 Kate 12
200 Alison 12
2 12-06-1990 Mike
|--------AMOUNT RECEIVER_NAME SETTLE_FEE
200 Jim 12
100 Amy 12
300 Mary 12
我需要获取每个发件人姓名的所有数据。
我尝试使用group_concat(),但是,它只需要1024个字符。
那么,实现这种情况的有效方法是什么。
我无法使用PL / SQL,也不允许与会话相关的值。
我需要所有发件人名称的所有收件人姓名,金额和费用。有效的方法是什么。
谢谢, 何
答案 0 :(得分:0)
有一个解决方案:
只需使用ORDER BY:
SELECT ID, DOB,SENDER, AMOUNT, RECEIVER_NAME, SETTLE_FEE
FROM inputTable
ORDER BY SENDER,DOB;
在显示您想要的数据时,您只需使用类似(虚拟代码,javscriptish)的代码:
var previousSender="";
while(var row=db.fetch()) {
if(row.sender!=previousSender) {
console.log(id+" "+row.dob+" "+row.sender);
previousSend=row.sender();
} else {
console.log(" |-------"+row.amount+" "+row.receiver_name+" "+row.settle_fee);
}
}
如您所见:id是随机的,因为它与模型中的dob或sender不相关。它只是一个行计数器。