CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

syntax error converting the varchar value 'a' to a column of data type int'

楼主noall()2002-03-29 17:24:04 在 MS-SQL Server / 基础类 提问

select   *   from   client   where   clientid   in   (select     clientid   from   sale   where   paystate='已付'   and   meettime>=@firdate   and   meettime<=@secdate   and   dogid   in   (select   dogid   from   dog   where   @Fieldname=1)   )  
   
  如果@fieldname='a'(传递的是字段名)那么将提示  
  syntax   error   converting   the   varchar   value   'a'   to   a   column   of   data   type   int'  
   
  的字段的类型   为bit   长度为1  
  为什么?  
  问题点数:10、回复次数:4Top

1 楼icevi(按钮工厂)回复于 2002-03-29 17:28:24 得分 5

用动态SQL来做吧  
  declare   @Strsql   varchar(8000)  
  select   @strsql=''  
  select   @strsql='select   *   from   client   where   clientid   in   (select     clientid   from   sale   where   paystate='已付'   and   meettime>=@firdate   and   meettime<=@secdate   and   dogid   in   (select   dogid   from   dog   where   '+@Fieldname+'=1)   )'  
  exec   (strsql)  
   
  Top

2 楼warning(爱就爱了)回复于 2002-03-29 17:28:26 得分 5

exec('select   *   from   client   where   clientid   in   (select     clientid   from   sale   where   paystate='已付'   and   meettime>=@firdate   and   meettime<=@secdate   and   dogid   in   (select   dogid   from   dog   where   '+@fieldname+'=1')Top

3 楼noall()回复于 2002-03-29 17:37:20 得分 0

用动态也试过。这样了,出现同样的问题。  
  SELECT   @SQLTXT="SELECT   *   FROM   CLIENT   WHERE   CLIENTID   "  
  SELECT   @SQLTXT   =@SQLTXT+"   in   (select     clientid   from   sale   where   paystate='已付'   and   meettime>="+QUOTENAME(CONVERT(VARCHAR(20),@FIRDATE,120),'''')+"   and   meettime<="+QUOTENAME(CONVERT(VARCHAR(20),@SECDATE,120),'''')+   "     and dogid   in   (select   dogid   from   dog   where"+QUOTENAME(   @fieldname,'''')+"=1)   )"  
  exec(@SQLTXT)Top

4 楼noall()回复于 2002-03-31 09:02:52 得分 0

换成这样子就不会出错了。  
   
  SELECT   @SQLTXT="   select   client.*   from   client   join   sale   on   client.clientid=sale.clientid   "+  
  "   join   dog   on   sale.dogid=dog.dogid   where   sale.paystate='已付'   and   dog."+@fieldname+"=1   and   sale.meettime>="+  
  QUOTENAME(CONVERT(VARCHAR(20),@FIRDATE,120),'''')+  
  "   and   sale.meettime<="+QUOTENAME(CONVERT(VARCHAR(20),@SECDATE,120),'''')  
   
  给份吧Top

相关问题

  • alter table table1 alter column column1 varchar(10),column2 varchar(10) ??
  • VARCHAR超过255在COLUMN中怎么输入?
  • ?:sql语句将column的类型从varchar(20)转成varchar(30)又不丢失数据?
  • convert(varchar(5),sdate,11)=''
  • Text和Varchar??
  • nvarchar和varchar问题
  • Varchar的问题,急!!!!!
  • date类型到varchar
  • 我把excel文件的内容导入到sqlserver中去,调试成功,但是column的顺序乱掉了,而且column的类型是varchar的,但是导进去后20050606的值
  • 用odbc连接*MDB 出错 line 27 column 413 ;incorrect syntax,如何处理,另:access 做后台,用pb做前台开发有何优缺点

关键词

  • meettime
  • firdate
  • convert
  • clientid
  • varchar
  • sale
  • where
  • select

得分解答快速导航

  • 帖主:noall
  • icevi
  • warning

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo