-1

我有这样的需求...

需要执行一个javaprepared statement示例:

String sql = "select first_name from student where roll_no :=1";
connection.prepareStatement(sql);

但问题是,有时表中可能没有上述查询的行。在这种情况下,我想查询第二个表说student2。因此,现在的 sql 查询将是:

String sql2 = "select first_name from student2 where roll_no :=1";

有没有办法table(student2)在单个 sql 查询中实现从另一个选择的条件。

我想要这样的伪代码:

String sql = "if student1 table doesn't have a roll_num, then query student2 table";
4

3 回答 3

0

尽管您的设计不好,但我正在暗示实现您的要求。执行第一个查询时,只需检查是否有可用的结果集,如果没有,则执行第二个查询。

ResultSet rs = statement.execute();
if (!rs.next()){
//ResultSet is empty
}

在 If 块中,您需要执行第二个查询。

注意:如果不可能,首先重新考虑您的设计。该解决方案有效,是蹩脚问题的蹩脚解决方案:)

于 2012-12-04T09:01:51.583 回答
0

创建您使用准备好的语句 MySql , Oracle调用的数据库过程。希望这可以帮助

于 2012-12-04T08:44:10.713 回答
0

我认为您可以使用例如 UNION 作为:

select val from (select 'A' as val from DUAL
                 union
                 select 'B' as VAL from DUAL)
where rownum = 1;

但是@tbraun89 是正确的首先考虑你的数据库结构

于 2012-12-04T09:11:26.780 回答