将Xpath转换为SQL



以前我们从一个表中获取许多国家/地区。现在,该表已更改为在文本单元格中支持多种语言。以前的SQL语句是:

select b.text, a.iso_num, a.iso2, a.iso3, a.kfz, a.ind_member
from schema.zl_countrycode a, schema.zl_countrycode_lsd b  
where a.ind_land = 1 and a.kfz is not NULL and dat_end = to_date('99991231','YYYYMMDD') and a.ZL_COUNTRYCODE_id = b.ZL_COUNTRYCODE_LSD_ID order by text

之前输出的列表是一行中的每个国家。随着语言选择的增加,名单的规模突然增加了一倍——因为它用两种不同的语言列出了每个县。

这就是GUI 的表格外观

我正试图弄清楚,如何将语句扩展到只选择每个";DE:";文本列中的值。在与开发人员进行了快速的间接讨论后,他们向我提供了以下XPATH声明:

Parentofparent/Parent/Valuestable[name="ZL_COUNTRYCODE"]/Valueclassification[name="TEXT"]/Value/ValueLng[lng="DE"]

我不知道XPATH的第一件事,无论我到目前为止尝试了什么,它都失败了。

如果你在这方面有知识,请帮帮我。这可能是一个Oracle数据库,因为在过去几天里我经历了大量的Oracle错误代码。

我认为这应该做到:

SELECT b.TEXT
,a.iso_num
,a.iso2
,a.iso3
,a.kfz
,a.ind_member
,a.de
FROM SCHEMA.zl_countrycode a
JOIN SCHEMA.zl_countrycode_lsd b 
ON a.ZL_COUNTRYCODE_id = b.ZL_COUNTRYCODE_LSD_ID AND b.spec_lng = 'DE'
WHERE a.ind_land = 1
AND a.kfz IS NOT NULL
AND dat_end = to_date('99991231', 'YYYYMMDD')
ORDER BY TEXT

最新更新