SQL条件语句

时间:2011-08-17 18:54:51

标签: java sql oracle if-statement conditional

我正在尝试在ORACLE sql代码中创建条件语句 我在java中有一个带2个参数的函数。 getchildren(child1,child2) ..此函数的参数用于创建查询语句

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 个答案:

答案 0 :(得分:3)

使用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());

答案 1 :(得分:1)

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