SQL条件语句

3
我正在尝试在ORACLE sql代码中创建一个条件语句。我有一个Java函数,它需要两个参数getchildren(child1,child2)。这个函数的参数用于创建查询语句。请注意,不要删除HTML标签。
public ResultSet getchildren(String Child1, String child2) throws SQLException 
{

 stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
 ResultSet.CONCUR_READ_ONLY);


     query ="select * from table1 

            if child1 is not null and child2 is null
            { where child1 = 1 }
            else if child2 is not null AND child1 is null
            {where child2 = 2}
            else
             {//some other where statment } 
            ";



    System.out.println("\nExecuting query: " + query);
    rset = stmt.executeQuery(query);

    return rset;


}

这显然是伪代码。 我需要帮助创建一个条件执行where子句,以便在其条件有效时执行每个"where"子句。 我已经尝试了类似于上面的内容,但没有成功。

2个回答

4
使用StringBuilder动态构建您的查询。
StringBuilder queryBuilder = new StringBuilder();
queryBuilder.append("select * from table1 ");

if ( child1 != null && child2 == null) 
   queryBuilder.append(" where child1 = 1 ");
else if ( child2 != null && child1 == null)
   queryBuilder.append(" where child2 = 1 ");
else
   queryBuilder.append(" where bla ");

// Execute queryBuilder.toString();
rset = stmt.executeQuery(queryBuilder.toString());

2

使用StringBuilder逐步构建查询。 首先附加"select * from table1 where "。 然后在普通Java中编写if语句,并在每个块中附加相应的子句。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接