select id,case when a='按面积计算' then b+'个'  else  c+'平方米' end d  
from department

解决方案 »

  1.   

    select id,case when a='按面积计算' then CAST(b AS NVARCHAR(20))+'个'  
                   else  CAST(c AS NVARCHAR(20))+'平方米' end  
    from department
      

  2.   

    select id,(case when a='按面积计算' then convert(varchar(10),b) + '个'  
                   else convert(varchar(10),c)+'平方米' end )as d 
    from 表
      

  3.   

    select id,case when a='按面积计算' then b  else  c end+'个' d  from department或:select id,case when a='按面积计算' then b  else  c end+'平方米' d  from department
      

  4.   

    select id,case when a='按面积计算' then b+'平方米'  else  c+'米' end as d  from department
      

  5.   

    各位,不行啊!!!!
    select id,case when a='按面积计算' then b  else  c end d  from department
    没有问题!!!select id,(case when a='按面积计算' then convert(varchar(10),b) + '个'  
                   else convert(varchar(10),c)+'平方米' end )as d 
    from 表有问题!!!提示ERROR CONVERTING DATA TYPE VARCHAR TO NUMERIC!!!!!a的数据类型是float,b的数据类型是numeric
      

  6.   

    a的数据类型是float? 为什么它的值是:
    按面积计算
    标准摊位
      

  7.   

    create table department  (id int,a nvarchar(100),b int,c int)
    insert into department values(1  , '按面积计算' ,   7 ,  0 )
    insert into department values(2  , '标准摊位' ,   0 ,  7 )select id ,
    case a when '按面积计算' then convert(nvarchar(1000), b)+'个' else convert(nvarchar(1000), c)+'平方米' end as d
    from department
      

  8.   

    sorry!!!
    b的数据类型是float,c的数据类型是numeric
      

  9.   

    问题解决了:
    SELECT gjh_code, CASE WHEN a = '按面积计算' THEN str(b) 
          + '平方米' ELSE str(c) + '个' END      
    FROM department