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)
下面查询 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)