SQL查询动态添加状态值

SQL query to add the state value dynamically

下面查询 returns 值如 - 'GA','CA','AL'

查询#1

  (SELECT Upper(hzg.geography_name) 
                 FROM   hz_geographies HZG, 
                        hz_geography_identifiers HZGI, 
                        hz_geography_identifiers HZGI1 
                 WHERE  hzg.country_code = 'US' 
                        AND hzg.geography_use = 'MASTER_REF' 
                        AND hzg.geography_type = 'STATE' 
                        AND hzg.geography_element1 = 'United States' 
                        AND hzgi.geography_id = hzg.geography_id 
                        AND hzgi.identifier_subtype = 'STANDARD_NAME' 
                        AND hzgi.identifier_type = 'NAME' 
                        AND hzgi.language_code = 'US' 
                        AND hzgi.geography_use = 'MASTER_REF' 
                        AND hzgi.geography_type = 'STATE' 
                        AND hzgi.primary_flag = 'N' 
                        AND hzgi1.geography_id = hzgi.geography_id 
                        AND hzgi1.identifier_subtype = 'GEO_CODE' 
                        AND hzgi1.identifier_type = 'CODE' 
                        AND hzgi1.language_code = 'US' 
                        AND hzgi1.geography_use = 'MASTER_REF' 
                        AND hzgi1.geography_type = 'STATE' 
                        AND hzgi1.primary_flag = 'N' 
                        AND Substr(hzgi1.identifier_value, 1, 
                            Instr(hzgi1.identifier_value, '-') 
                            - 1) = 
                            pdcc.context_value1) 

我想在另一个查询中使用上述查询,这样 - 查询 #2

(SELECT DISTINCT Decode(dir_information_char3, 'Y', 'Yes', 
                                                               'N', 'No', 
                                                               '') 
                 FROM   pay_dir_card_components_f PDCCF3, 
                        pay_dir_comp_details_f PDCDF3 
                 WHERE  PDCCF3.dir_card_id = PDCF.dir_card_id 
                  and pdcc.context_value1 = PDCCF3.context_value1
                        AND PDCCF3.dir_card_comp_id = PDCDF3.dir_card_comp_id 
                        AND PDCDF3.dir_information_category = 
                            'HRX_US_WTH_STATE_GA')

HRX_US_WTH_STATE_GA 应根据查询 #1 更改。

即如果查询 1 returns 'CA' 那么查询 #2 应该像 -

(SELECT DISTINCT Decode(dir_information_char3, 'Y', 'Yes', 
                                                               'N', 'No', 
                                                               '') 
                 FROM   pay_dir_card_components_f PDCCF3, 
                        pay_dir_comp_details_f PDCDF3 
                 WHERE  PDCCF3.dir_card_id = PDCF.dir_card_id 
                  and pdcc.context_value1 = PDCCF3.context_value1
                        AND PDCCF3.dir_card_comp_id = PDCDF3.dir_card_comp_id 
                        AND PDCDF3.dir_information_category = 
                            'HRX_US_WTH_STATE_CA')

我们该怎么做

只需一个简单的子查询就可以解决问题,不是吗?

SELECT DISTINCT Decode(dir_information_char3, 'Y', 'Yes', 
                                                               'N', 'No', 
                                                               '') 
                 FROM   pay_dir_card_components_f PDCCF3, 
                        pay_dir_comp_details_f PDCDF3 
                 WHERE  PDCCF3.dir_card_id = PDCF.dir_card_id 
                  and pdcc.context_value1 = PDCCF3.context_value1
                        AND PDCCF3.dir_card_comp_id = PDCDF3.dir_card_comp_id 
                        AND PDCDF3.dir_information_category = 
                 (SELECT 'HRX_US_WTH_STATE_'||Upper(hzg.geography_name) 
                 FROM   hz_geographies HZG, 
                        hz_geography_identifiers HZGI, 
                        hz_geography_identifiers HZGI1 
                 WHERE  hzg.country_code = 'US' 
                        AND hzg.geography_use = 'MASTER_REF' 
                        AND hzg.geography_type = 'STATE' 
                        AND hzg.geography_element1 = 'United States' 
                        AND hzgi.geography_id = hzg.geography_id 
                        AND hzgi.identifier_subtype = 'STANDARD_NAME' 
                        AND hzgi.identifier_type = 'NAME' 
                        AND hzgi.language_code = 'US' 
                        AND hzgi.geography_use = 'MASTER_REF' 
                        AND hzgi.geography_type = 'STATE' 
                        AND hzgi.primary_flag = 'N' 
                        AND hzgi1.geography_id = hzgi.geography_id 
                        AND hzgi1.identifier_subtype = 'GEO_CODE' 
                        AND hzgi1.identifier_type = 'CODE' 
                        AND hzgi1.language_code = 'US' 
                        AND hzgi1.geography_use = 'MASTER_REF' 
                        AND hzgi1.geography_type = 'STATE' 
                        AND hzgi1.primary_flag = 'N' 
                        AND Substr(hzgi1.identifier_value, 1, 
                            Instr(hzgi1.identifier_value, '-') 
                            - 1) = 
                            pdcc.context_value1)