最近做的一个项目,客户对一个报表提的需求是:品种按照原煤、商品混煤、精煤、洗混煤、煤泥、洗矸石的顺序进行排序。
去网上查了一下,可以借助DECODE函数,自定义顺序排序。(记录下来,方便以后查找学习)
SQL如下:
SELECT TSSPMYSCJH_DJRQ,TSSPMYSCJH_DJBH,TSSPMYSCJH_ND,TSSPMYSCJH_YD,LSBMZD_BMMC,MaterialName,TSSPMYSCJHMX_BQCL,TSSPMYSCJHMX_CL,TSSPMYSCJHMX_WGML,TSSPMYSCJHMX_MZ,TSSPMYSCJHMX_CQKC,TSSPMYSCJHMX_BZ,TSSPMYSCJHMX_BQZYL
FROM TSSPMYSCJH
INNER JOIN TSSPMYSCJHMX ON TSSPMYSCJH.TSSPMYSCJH_ID=TSSPMYSCJHMX.TSSPMYSCJHMX_MXID
LEFT JOIN ORGANIZATIONS ON TSSPMYSCJH.TSSPMYSCJH_KB=ORGANIZATIONID
LEFT JOIN LSBMZD ON TSSPMYSCJH.TSSPMYSCJH_BZBM=LSBMZD_ID
LEFT JOIN Materials ON TSSPMYSCJHMX.TSSPMYSCJHMX_PZ=Materials.MaterialID
GROUP BY
TSSPMYSCJH_DJRQ,TSSPMYSCJH_DJBH,ORGANIZATIONNAME,TSSPMYSCJH_ND,TSSPMYSCJH_YD,LSBMZD_BMMC,MaterialName,TSSPMYSCJHMX_BQCL,TSSPMYSCJHMX_CL,TSSPMYSCJHMX_MZ,TSSPMYSCJHMX_CQKC,TSSPMYSCJHMX_BZ,TSSPMYSCJHMX_BQZYL,TSSPMYSCJHMX_WGML
order by decode(MaterialName, '原煤', 1, '商品混煤', 2, '精煤', 3, '洗混煤', 4, '煤泥', 5, '洗矸石', 6)
实现效果如下: