テーブルの null 許容列の列の値を使用して、整数の 3 つの値のいずれかを選択する必要があります。
少なくとも 2 つの方法があります。1) SQL を使用してすべての作業を行う: null 値をテストし、他の値から選択するか、2) 値を読み取り、コード (この場合は Java) を使用して選択します。
どちらが「より良い」か、つまり。理解しやすく保守しやすい?他に決定する指標はありますか?
例として、次のコードがあります。
// If id is equal to:
// -1, then make v = 1
// null, then make v = 2
// in any other case, make v = 3
// Option 1:
int v;
String query = "SELECT CASE min(Id) WHEN NULL THEN 2 WHEN -1 THEN 1 ELSE 3 END AS Id"
+ "FROM TableA WHERE SomeField IN (SELECT ...blah blah...)";
ResultSet rs = // execute query
if (rs.next()) {
v = rs.getInt("Id");
} else {
// TODO something went *very* wrong...
}
// Option 2:
int v;
String query = "SELECT CASE min(Id) Id"
+ "FROM TableA WHERE SomeField IN (SELECT ...blah blah...)";
ResultSet rs = // execute query
if (rs.next()) {
final int id = rs.getInt("Id");
if (rs.wasNull()) {
v = 2;
} else if (id == -1) {
v = 1;
} else {
v = 3;
}
} else {
// TODO something went *very* wrong...
}