select 
case 0
when 1 then Convert(numeric(10,2),12.1234)
when 0 then '你好'
          end消息 8114,级别 16,状态 5,第 2 行
將資料類型從 varchar 轉換到 numeric 時發生錯誤。

解决方案 »

  1.   

    Convert(numeric(10,2),12.1234)  与 '你好',类型不同
      

  2.   

    --try:
    select 
    case 0
    when 1 then convert(varchar(10),Convert(numeric(10,2),12.1234))
    when 0 then '你好'
              end
      

  3.   

    元数据不一致,
    当1,是numeric,当0 是varchar
    是无法通过的
      

  4.   

    数据类型不符,一个数值,一个字符,这样改:select 
    case 0
    when 1 then cast(convert(varchar(10),Convert(numeric(10,2),12.1234)) as varchar)
    when 0 then '你好'
              end
      

  5.   


       对啊,我也知道,类型不对,但case 0,case 1是按条件选取一个执行   逻辑上也过关啊   一定要把这二个参数的类型弄的一样吗?
      

  6.   

    select 
    case 0
    when 1 then convert(varchar(10) , cast(12.1234 as decimal(10,2)))
    when 0 then '你好'
              end
    你好(所影响的行数为 1 行)