我有个字段是float类型,当某条记录满足某个条件时,想把这条记录的float字段的更新为varchar类型的,其它记录不变,不知道能不能实现?比如一百条记录的99条记录的float字段都是“10.5”,其中一条记录想让它显示为“不合格”,不知道能不能实现呢?谢谢高手!

解决方案 »

  1.   

    float型的值不能包含"不合格",除非这个字段用varchar类型
      

  2.   

    SQL server 数据库中除了 sql_variant 类型外其他类型都只能存储单一类型。
    float 可定不能存字符,但是浮点数字可以转化为字符存储在varchar中,但是就不能直接做计算了。
    需要转换成浮点型。
    应该如楼上所说在查询结果或显示时替换。
    查询时可以用case when 实现。
      

  3.   

    楼主的这个要求似乎不符合数据库的定义一个字段里的记录肯定必须得是一模一样的数据类型不可能在同一个字段里一条记录是float 一条记录是varchar.---------------------------------------------------------------
    比如一百条记录的99条记录的float字段都是“10.5”,其中一条记录想让它显示为“不合格”,不知道能不能实现呢?谢谢高手!
    -------------------------------------------------你这个,除非是把该float字段 转化成varchar,然后里面的显示的内容是10.5(字段类型是varchar),其中一条记录显示为不合格。
      

  4.   

    只能转换显示。
    比如:
    select 字段=case when 字段=10.5 then '不合格' else ltrim(字段) end from 表名
      

  5.   

    显示时转换,或者改为varchar类型
      

  6.   

    一个字段在数据库中只可以是一种类型。就我知道的只有一种类型有2种表现形式。那就只有bool型。true,false;0和1。其余的好像还没有。
      

  7.   

    输出时必须全部转为varchar 不能只转其中一条
    你的情况,可float转为字符型 如10.5转为'10.5'
      

  8.   

    结论就是字段改成varchar类型,
    或者你可以定义以-999999表示“不合格”
      

  9.   

    在数据库里没有办法实现。
    不可可以通过select 时转化成varchar 的select case when 字段=条件 then '不合格' else cast(字段 as varchar(20)) end 
    from tb