select * from (select a.f_channel_ID AS fChannelID,a.f_temp_ID AS fTempID,a.f_temp_name AS fTempName,a.f_temp_desc AS fTempDesc,a.f_created AS fCreated, a.f_updated AS fUpdated,b.f_channel_Name AS fChannelName from T_BH_template AS a LEFT JOIN t_BH_channel AS b on a.f_channel_ID = b.f_channel_ID ) AS c  WHERE c.fChannelID LIKE ?这句sql语句,我在sqlserver客户端中运行,没有问题。
但是通过?方式传值的时候就报以下错误,望高手指点。com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'WHERE' 附近有语法错误。
 Query: select * from (select a.f_channel_ID AS fChannelID,a.f_temp_ID AS fTempID,a.f_temp_name AS fTempName,a.f_temp_desc AS fTempDesc,a.f_created AS fCreated, a.f_updated AS fUpdated,b.f_channel_Name AS fChannelName from T_BH_template AS a LEFT JOIN t_BH_channel AS b on a.f_channel_ID = b.f_channel_ID ) AS c  WHERE c.fChannelID LIKE ?

解决方案 »

  1.   

    你把 WHERE c.fChannelID LIKE ? 去掉报错么?是不是没有传进去参数。
      

  2.   


    //com.microsoft.sqlserver.jdbc.SQLServerException
    //LZ 换个链接字符串吧 
    String connectionString="Persist Security Info=False;Server=localhost;database=xxxx;user id=sa;password=sa;Pooling=false;Connect Timeout=120"
      

  3.   

    去掉WHERE c.fChannelID LIKE ?的话,程序就报错了,我用的是java的QueryRunner 传进去的参数。
      

  4.   

    把你传值后的SQL语句在程序里抓出来,看看like后面的值是不是没有引号或者少什么东东