我们有多个包含"静态"键/值对的表,这些表当前使用多个SQL (MSSQL)查询提取。是否有可能在一个SQL查询中提取所有这些数据,以便我们可以在单个结果集中引用每个列键和列值?例如:
TABLE_ONE
id, my_key_name, my_value_name
TABLE_TWO
id, my_other_key_name, my_other_value_name
请记住,每个表的键和值的列名是不同的。基本上,我们想把多个电话合并成一个。在这种情况下,我们必须有多个Java结果集,我们只需要在代码中进行组合吗?
SELECT id, my_key_name, my_value_name
FROM TABLE_ONE
UNION
SELECT id, my_other_key_name, my_other_value_name
FROM TABLE_TWO
?
参见:UNION
我不知道您是否可以在一个语句中做到这一点(通过用分号分隔查询),但您肯定可以创建一个返回多个结果集的存储过程。
调用gettresultset后,您可以使用getmoreeresults方法(来自java.sql.Statement)移动到下一个ResultSet。它关闭当前的ResultSet,所以你需要在调用getmoreeresults和从语句中获得下一个ResultSet之前从第一个ResultSet中获得你需要的任何数据。