SQL "like" 操作符的问题

02-11-06 jxb8901

请教各位大侠:下面的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 下一页