SELECT 
case when price=0 then '-' else convert(nvarchar(100),price) end as price
 FROM tablea但是注意,price这一列为字符串类型了。SQL中每一列只能是一个属性。

解决方案 »

  1.   

    CREATE TABLE #tablea(price NUMERIC(18,2))INSERT INTO #tablea
    SELECT 10 UNION ALL
    SELECT 0
    SELECT 
    CASE when CONVERT(VARCHAR(20),price)='0.00' then '-' 
    else CONVERT(VARCHAR(20),price) end as price
     FROM #tablea
    price
    --------------------
    10.00
    -(2 row(s) affected)
      

  2.   

    SELECT 
    case when price=0 then '-' else cast(price as varchar(20)) end as price
     FROM tablea
      

  3.   

    CREATE TABLE tablea(price NUMERIC)
    INSERT INTO tablea
    SELECT 0
    UNION ALL 
    SELECT 1
    UNION ALL 
    SELECT 2
    SELECT 
    case when price=0 then '-' else CONVERT(VARCHAR(5),price) end as price
     FROM tablea /*
     price
    -----
    -
    1
    2
     */