数据库字段 sType,现在要比较,基本都是数字,但是也夹杂着汉字,现在需要得到select * from table where sType<200 or sTyep='良好' or sTyep='合格'因为该字段有汉字,所以第一个int的转换就出问题了。SQL语句该怎么写...从来没遇到过..

解决方案 »

  1.   

    设计有问题,还是根治为好,把字段设为数值类型,譬如把'良好'改成-1, '合格'改成-2等你坚持的话,在SQL Server里,你可以使用Convert函数来转换成数值,但问题是,当值是非数据型时,这个函数会出错,所以你在转换前需要检查是否含有非数据型值
      

  2.   

    恩,我问的就是怎么样判断int和其他类型。
      

  3.   

    select * from table where  sType='良好' or sType='合格' or  sType<200 
    可以这样试试
      

  4.   

    SQL SERVER有个函数ISNUMERIC
    http://msdn2.microsoft.com/en-us/library/ms186272.aspx
      

  5.   

    如果你现在改数据库时还不是很麻烦的话,我那就建议你改成saucer(思归)这位兄弟所说的那样,把'良好'改成-1, '合格'改成-2等