java准备语句

java准备语句,java,sql,jdbc,prepared-statement,Java,Sql,Jdbc,Prepared Statement,我有这样的要求 需要执行java准备的语句示例: 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 :

我有这样的要求

需要执行java准备的语句示例:

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";
是否有一种方法可以实现在单个sql查询中从另一个
表(student2)
中进行选择的条件

我想要类似以下伪代码的东西:

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

创建一个数据库过程,用准备好的语句调用它 , .
希望这能有所帮助

虽然你的设计不太好,但我暗示你要达到你的要求。当您执行第一个查询时,只需检查是否有可用的结果集,如果没有,则执行第二个查询

ResultSet rs = statement.execute();
if (!rs.next()){
//ResultSet is empty
}
在If块中,您需要执行第二个查询

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

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

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

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

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

我认为这不是SQL问题,而是数据库设计的问题。也许你应该重新考虑你的数据库表,这样你就不需要那么复杂的查询了。