我刚刚开始使用(Oracle)SQL,遇到了一个问题.基本上,我想把一个未知大小的表转换成另一个表中的一个字段.实际上涉及到更多的表,但我将try 创建一个更简单的示例.有一个表CUSTOMERS
:
ID | NAME |
---|---|
5 | John Smith |
17 | Jane Doe |
一张桌子DETAILS
:
ID | DETAIL | VALUE |
---|---|---|
5 | Street | Elm St. |
5 | Post_code | 12345 |
5 | Number | 17 |
17 | Telephone | 09999999 |
17 | Fax | 088888888888 |
因此,对于每个客户来说,可能有不同的信息,在不知道DETAILS.DETAIL
中所有可能的条目的情况下,我想将它们作为键值对放在一个字段中,如下所示:
ID | NAME | DETAILS |
---|---|---|
5 | John Smith | Street: Elm St. Post_code: 12345 Number: 17 |
17 | Jane Doe | Telephone: 09999999 Fax: 088888888888 |
大致来说,到目前为止我能做的是:
SELECT
CUSTOMERS.ID
,CUSTOMERS.NAME
,DETAILS.DETAIL || ': ' || DETAILS.VALUE
FROM
CUSTOMERS
JOIN DETAILS ON CUSTOMERS.ID = DETAILS.ID
但这会为已知的有关客户的每个详细信息添加一行.我的目标是仍然 for each 客户保留一行.