ID(土地图斑号) AREA(面积) TYPE(类型) XZQY(行政区域)
0001 32 A(水田) WH(武汉)
0002 3 D(草地) WH
0003 878 B(旱地) SH(上海)
0004 34 C(菜地) WH
0005 2 D BJ(北京)
0006 7 A WH
0007 43 C WH
0008 43 B WH假设有10000条类似的数据,行政区域有20多个,地类有50种,我现在要查出各行政区域的A、B、C三种地类的总面积,结果表如下:XZQY TYPE_A TYPE_B TYPE_C请问语句该怎么写?
0001 32 A(水田) WH(武汉)
0002 3 D(草地) WH
0003 878 B(旱地) SH(上海)
0004 34 C(菜地) WH
0005 2 D BJ(北京)
0006 7 A WH
0007 43 C WH
0008 43 B WH假设有10000条类似的数据,行政区域有20多个,地类有50种,我现在要查出各行政区域的A、B、C三种地类的总面积,结果表如下:XZQY TYPE_A TYPE_B TYPE_C请问语句该怎么写?
SELECT XZQY,
NVL(SUM(DECODE(TYPE, 'A', AREA)), 0) TYPE_A,
NVL(SUM(DECODE(TYPE, 'B', AREA)), 0) TYPE_B,
NVL(SUM(DECODE(TYPE, 'C', AREA)), 0) TYPE_B
FROM TBL
GROUP BY XZQY
--之前别名有点问题 type_C
SELECT XZQY,
NVL(SUM(DECODE(TYPE, 'A', AREA)), 0) TYPE_A,
NVL(SUM(DECODE(TYPE, 'B', AREA)), 0) TYPE_B,
NVL(SUM(DECODE(TYPE, 'C', AREA)), 0) TYPE_C
FROM TBL
GROUP BY XZQY
NVL()函数,当面积和为空时,就赋值为0.
建议你还是先看书学习吧。
NVL(SUM(DECODE(LANDTYPE,060111,AREA)),0) ST,
NVL(SUM(DECODE(LANDTYPE,060112121,AREA)),0) SJD,
NVL(SUM(DECODE(LANDTYPE,060112122,AREA)),0) CD,
NVL(SUM(DECODE(LANDTYPE,'060113a',AREA)),0) LOWHD,
NVL(SUM(DECODE(LANDTYPE,'060113d',AREA)),0) OVERHD,
NVL(SUM(DECODE(LANDTYPE,060114,AREA)),0) HTD
FROM LAND_INFO
GROUP BY XZQYBMXZQYBM就对应XZQY,LANDTYPE就对应TYPE,TYPE_A TYPE_B之类就对应ST SJD之类,
第一次因为XZQYBM后面忘打逗号了,所以说缺FROM关键字,现在改了,但是提示 ORA-07122:无效数字