【发布时间】:2018-10-24 02:28:33
【问题描述】:
我有一个customers 表,其中包含zip 和cust_id 列,其中包含每个客户的每个邮政编码。
我有一个zip_state 参考表,其中包含zip 和state 列,其中包含每个州的每个邮政编码。
我想做的是为每个客户提供一份状态列表 - 例如:
states cust_id
--------- ---------
AL,TX,FL 112
WA,VA 113
FL,CA 114
我想出了以下查询:
SELECT LISTAGG( state, ',' ) WITHIN GROUP( ORDER BY state ) states, '112' cust_id
FROM (SELECT DISTINCT state FROM zip_state WHERE zip IN (
SELECT zip FROM customers WHERE cust_id = '112'));
...呈现:
states cust_id
--------- ---------
AL,TX,FL 112
由于 WHERE IN 子句,我只能列出一位客户的状态。 如何修改查询,以便获得上述所需的结果集?
【问题讨论】: