查询

刷新物化视图

  1. REFRESH MATERIALIZED view ods.v_sap_producttype_distinct

取分组的最大值数据

  1. SELECT *
  2. FROM ods.v_sap_building_full t1
  3. JOIN ( SELECT vsbf.xm,
  4. max(vsbf.jhbb::text) AS jhbb
  5. FROM ods.v_sap_building_full vsbf
  6. GROUP BY vsbf.xm) latest ON t1.xm::text = latest.xm::text AND t1.jhbb::text = latest.jhbb;

用子查询取最大值后关联

模糊关联,比如佛山市关联佛山

  1. select a.namepath,b.city from md_cityregion a left join z_project_temp b on a.name like concat(b.city,'%')

取楼栋阶段回退,A字段版本增加,B字段阶段存在回退的

  1. select A.*
  2. FROM
  3. (
  4. SELECT
  5. jhbb,
  6. ld,
  7. case "bzjd"
  8. when '土地获取阶段' then 0
  9. when '市场定位阶段' then 1
  10. when '方案阶段' then 2
  11. when '施工图阶段' then 3
  12. when '预测阶段' then 4
  13. when '实测阶段' then 5
  14. else 5 end bzjd
  15. FROM "v_sap_building_full"
  16. ) A inner join (
  17. SELECT
  18. jhbb,
  19. ld,
  20. case "bzjd"
  21. when '土地获取阶段' then 0
  22. when '市场定位阶段' then 1
  23. when '方案阶段' then 2
  24. when '施工图阶段' then 3
  25. when '预测阶段' then 4
  26. when '实测阶段' then 5
  27. else 5 end bzjd
  28. FROM "v_sap_building_full"
  29. ) B ON A.ld = B.ld and A.jhbb > B.jhbb AND A.bzjd < B.bzjd

oracle使用union all 报字符集不匹配

虽然都是字符型但是如果使用了case when等转换,会报错。需要在union的层级转换字段类型

  1. TO_CHAR(ZT.KEHU) AS KEHU

oracle分组聚合

把多个客户名称拼接成一个字符串

  1. select listagg(CUST_NAME, ',') within group( order by CUST_NAME) as name
  2. from BI_CONNECT.ZSAC_D_CN_BP
  3. WHERE PARENT_KEY ='005056B9EED81EEA89A71B6693043135'

ORACLE递归生成时间

  1. SELECT SYSDATE - LEVEL + 1 FROM DUAL CONNECT BY LEVEL <=5

image.png

MS SQL SERVER 变量

  1. DECLARE @xiangmu char(8000)
  2. DECLARE @bgndate char(10)
  3. DECLARE @enddate char(10)
  4. SET @xiangmu = 'tjgs.tjgs0008''gzgs.Proj0029'
  5. SET @bgndate = '2021-01-01'
  6. SET @enddate = '2021-04-01';
  7. WITH DIM_quyu AS (
  8. -- dim 组织维度-区域
  9. SELECT

修改