我现在要作一个sql判断赋值语句,有四列值要从以一个指标ioper字段的值来判断赋值,而这4列值又是从同一个字段mny中取得,规则如下:
ioper值分别是 :0,1,2,3
mny的取值规则:是当ioper为0时,mny字段的值是赋值给"销售面积"列
是当ioper为1时,mny字段的值是赋值给"套数"列
是当ioper为2时,mny字段的值是赋值给"均价"列
是当ioper为3时,mny字段的值是赋值给"销售收入"列0销售面积  1套数  2均价  3销售收入(万元)
请教这个SQL语句要怎么写

解决方案 »

  1.   


    WITH TB AS
    (
    SELECT '万科' AS house_name,0 AS ioper , 300 AS mny FROM DUAL
    UNION
    SELECT  '万科' AS house_name,1 AS ioper , 1 AS mny FROM DUAL
    UNION
    SELECT  '万科' AS house_name,2 AS ioper , 10000 AS mny FROM DUAL
    UNION
    SELECT '万科' AS house_name, 3 AS ioper, 30 AS mny FROM DUAL
    UNION
    SELECT '华侨城' AS house_name,0 AS ioper , 100 AS mny FROM DUAL
    UNION
    SELECT  '华侨城' AS house_name,1 AS ioper , 2 AS mny FROM DUAL
    UNION
    SELECT  '华侨城' AS house_name,2 AS ioper , 20000 AS mny FROM DUAL
    UNION
    SELECT '华侨城' AS house_name, 3 AS ioper, 40 AS mny FROM DUAL
    )SELECT 
    HOUSE_NAME,
    SUM(DECODE(T.ioper,0,T.mny,0)) AS 面积,
    SUM(DECODE(T.ioper,1,T.mny,0)) AS 套数,
    SUM(DECODE(T.ioper,2,T.mny,0)) AS 均价,
    SUM(DECODE(T.ioper,3,T.mny,0)) AS 销售收入_万元 
    FROM TB T
    GROUP BY HOUSE_NAME
      

  2.   

    HOUSE_NAME 面积 套数 均价 销售收入_万元
    华侨城 100 2 20000 40
    万科 300 1 10000 30
      

  3.   

    SELECT 
            HOUSE_NAME,
            SUM(DECODE(T.ioper,0,T.mny,0)) AS 面积,
            SUM(DECODE(T.ioper,1,T.mny,0)) AS 套数,
            SUM(DECODE(T.ioper,2,T.mny,0)) AS 均价,
            SUM(DECODE(T.ioper,3,T.mny,0)) AS 销售收入_万元 
    FROM TB T
    GROUP BY HOUSE_NAME如果是统计可以用上面的方法做。
      

  4.   

    DECODE还是这个函数管用,谢谢了