-1

こんな要望が・・・

Java プリペアド ステートメントの例を実行する必要があります。

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

しかし、問題は、上記のクエリのテーブルに行がない場合があることです。その場合、2番目のテーブルをクエリしたいと思います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

準備済みステートメントMySqlOracleで呼び出すデータベース プロシージャを作成し ます。お役に立てれば

于 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はDB構造を最初に考えるのが正しいです

于 2012-12-04T09:11:26.780 に答える
0

あなたのデザインは良くありませんが、私はあなたが求めていることを達成するためのヒントを与えています. 最初のクエリを実行するときは、利用可能な結果セットがあるかどうかを確認し、利用できない場合は 2 番目のクエリを実行します。

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

If ブロックでは、2 番目のクエリを実行する必要があります。

注: 可能でない場合は、最初に設計を再考してください。このソリューションは機能します。これは、不十分な問題の不十分なソリューションです:)

于 2012-12-04T09:01:51.583 に答える