SQL "like" 操作符的问题

jxb8901
02-11-06 7 330

请教各位大侠:下面的SQL语句经过JDBC/ODBC为何取不到数据?
"select customer from cus where cus_no like 'CM%'"
上面的语句直接查询数据库可以成功, 请教各位这是什么原因?

richardluopeng
2002-11-12 13:14

可以吧

jxb8901
2002-11-13 09:21

很抱歉, 我的问题描述错了. 应该是这样的:
当直接用select top 10 * from cus where cus_no like 'CM%'查询时
可以查询到记录, 但将'CM%'换成? 就查询不到记录, 请高人指教!!!
源代码如下:

import java.sql.*;

public class JdbcTest{
public static void main(String[] args) throws Exception{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(
"jdbc:odbc:ikari","123", "123");

String sql =
"select top 10 * from cus where"+
" cus_no like ?";//'CM%'";
//String sql = "select top 10 datename(m, date)"+
" from bsr";
PreparedStatement pstmt = con.prepareStatement(sql);

pstmt.setString(1,
"CM%");

ResultSet rs = pstmt.executeQuery();
while (rs.next()){
System.out.println(rs.getObject(1));
}
}
}


另外我不碰到一个问题:下面的语句
select top 10 datename(m, date) from bsr 直接通过数据库查询可得
到10条记录, 在程序中通过Jdbc/Odbc查询也可得到10条记录但
记录中的结果却全为null, 见上面注释掉的代码,
这是为什么呢???

superhc
2002-11-13 12:40

你的sql语句应该这样写


select top 10 * from cusrom cus where cus_no like ?

zingers
2002-11-13 13:17

如果你的记录行如
CM01,CM01/02,cm\0304(冠军足球经理:)
用cm?当然不匹配,?只能泛指一个符号。

2Go 1 2 下一页