0
String sql="SELECT a.ID,a.VISITOR_TEXT,a.COMPANY_TEXT,a.CONTACT,a.PERSON_TO_MEET,a.DEPARTMENT_TEXT,a.FLOOR,b.BELONGING_TYPE,b.BELONGING_TEXT ,a.INTIME, c.EXIT_TIME FROM tm_visitor a  LEFT JOIN tm_belonging b ON b.BID=a.ID LEFT JOIN tm_exit c ON c.ID=a.ID limit "+i+",10";

System.out.println(sql);
ResultSet rs=st.executeQuery(sql);
while(rs.next())
    {
    ar.add(rs.getInt("ID"));
    ar.add(rs.getObject("VISITOR_TEXT"));
    ar.add(rs.getObject("COMPANY_TEXT"));
    ar.add(rs.getObject("CONTACT"));
    ar.add(rs.getObject("PERSON_TO_MEET"));
    ar.add(rs.getObject("DEPARTMENT_TEXT"));
    ar.add(rs.getObject("FLOOR"));
    ar.add(rs.getObject("BELONGING_TYPE"));
    ar.add(rs.getObject("BELONGING_TEXT"));
    ar.add(rs.getObject("INTIME"));
    ar.add(rs.getObject("EXIT_TIME"));

    }

<tr>
    <td align="center"><input type="text" name="id" value="<%=itr.next()%>" readonly size="15"></td>
    <td align="center"><input type="text" name="visitorname" value="<%=itr.next()%>" readonly size="20"></td>
    <td align="center"><input type="text" name="company" value="<%=itr.next()%>" readonly size="20"></td>
    <td align="center"><input type="text" name="contact" value="<%=itr.next()%>" readonly size="10"></td>
    <td align="center"><input type="text" name="whometomeet" value="<%=itr.next()%>" readonly size="20"></td>
    <td align="center"><input type="text" name="department" value="<%=itr.next()%>" readonly size="20"></td>
    <td align="center"><input type="text" name="floor" value="<%=itr.next()%>" readonly size="7"></td>
    <td align="center"><input type="text" name="btype" value="<%=itr.next()%>" readonly size="15"></td>
    <td align="center"><input type="text" name="bel" value="<%=itr.next()%>" readonly size="15"></td>
    <td align="center"><input type="text" name="intime" value="<%=itr.next()%>" readonly size="20"></td>
    <td align="center"><input type="text" name="exittime" value="<%=itr.next()%>" readonly size="20"></td>



</tr>

上記のクエリを実行した後、tm_exit.EXIT_TIMEの値の値が存在しない場合は、JSPテーブルのテキストボックスにNULLを表示します。これを回避するにはどうすればよいですか。

私は試した:

<%!
String blanknull(String s) {
  return (s == null) ? "" : s;
}
%>

しかし、役に立たない、助けてください?

これが私がデータをフェッチするために使用しているクエリです

SELECT a.ID,a.VISITOR_TEXT,a.COMPANY_TEXT,a.CONTACT,a.PERSON_TO_MEET,a.DEPARTMENT_TEXT,‌​a.FLOOR,b.BELONG ING_TYPE,b.BELONGING_TEXT ,a.INTIME, c.(ifnull(EXIT_TIME,'NA')) as EXIT_TIME FROM tm_visitor a LEFT JOIN tm_b elonging b ON b.BID=a.ID LEFT JOIN tm_exit c ON c.ID=a.ID; 

しかし、次のエラーが発生します

エラー1064(42000):SQL構文にエラーがあります。'(ifnull(EXIT_TIME、' NA'))の近くでEXIT_TIME FROM tm_visitor a LEFT JOI N tm_belongingとして使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

4

1 に答える 1

0

null 値を回避するには、MySQL の ifnull 関数を使用します。

null 値を持つテーブル:

mysql> select * from test;
+------+---------+
| id   | name    |
+------+---------+
|    1 | Jcho360 |
|    1 | NULL    |
+------+---------+
2 rows in set (0.00 sec)

IFNULL 関数を持つテーブル

mysql> select id, ifnull(name,'Its NOT NULL')as name from test;
+------+--------------+
| id   | name         |
+------+--------------+
|    1 | Jcho360      |
|    1 | Its NOT NULL |
+------+--------------+
2 rows in set (0.00 sec)

'its NOT NULL' の代わりに ' ' またはその他のものを入れることができ、もう null はありません

編集:

試す

String sql="SELECT a.ID,a.VISITOR_TEXT,a.COMPANY_TEXT,a.CONTACT,a.PERSON_TO_MEET,
a.DEPARTMENT_TEXT,a.FLOOR,b.BELONGING_TYPE,b.BELONGING_TEXT ,a.INTIME,
 ifnull(c.EXIT_TIME,0) FROM tm_visitor a  
LEFT JOIN tm_belonging b ON b.BID=a.ID 
LEFT JOIN tm_exit c ON c.ID=a.ID limit "+i+",10";
于 2012-06-11T19:50:32.773 に答える