飞道的博客

圣诞快乐: 用 GaussDB T 绘制一颗圣诞树,兼论高斯数据库语法兼容

392人阅读  评论(0)

转眼就是圣诞的节日,祝大家节日快乐。用 GaussDB T (也就是 GaussDB 100)绘制一棵圣诞树,纯国产,更喜庆。

话不多说,上图:

SQL如下:


   
  1. SELECT
  2. CASE WHEN ENMOTECH = 1 THEN lpad( '*',
  3. GAO,
  4. ' ')
  5. ELSE lpad( ' ',
  6. GAO + 1-ENMOTECH,
  7. ' ') || rpad( '*',
  8. lag(ENMOTECH) OVER (PARTITION BY 1
  9. ORDER BY
  10. ENMOTECH) + ENMOTECH -2,
  11. '*')
  12. END "圣诞快乐!"
  13. FROM
  14. (SELECT
  15. LEVEL ENMOTECH ,
  16. MAX(LEVEL) OVER (PARTITION BY 1) GAO
  17. FROM dual
  18. CONNECT BY LEVEL < 19 )
  19. UNION ALL
  20. SELECT
  21. lpad(lpad( '*', 3, '*'), 19)
  22. FROM dual
  23. CONNECT BY LEVEL < 5;

主要,这段 SQL 代码,和 Oracle 完全兼容,在 Oracle 中执行效果如下:

总结一下,在使用了非常特殊的查询语法后,GaussDB 工作的非常愉快:


   
  1. Case When;
  2. LAG 分析函数;
  3. CONNECT by;

当然,杨长老说了,我这棵圣诞树不太好看,他根据公司的祝贺图重新画了一个,杨长老说圣诞树应该是这样的:

再来图:

上代码:


   
  1. WITH leaf AS (
  2. SELECT
  3. lpad(rpad( '*',
  4. (ROWNUM -1)* 2 + 1,
  5. '*'),
  6. ROWNUM + 20) leaf,
  7. ROWNUM
  8. FROM
  9. dual
  10. CONNECT BY
  11. LEVEL <= 3),
  12. lv AS (
  13. SELECT
  14. ROWNUM lv
  15. FROM
  16. dual
  17. CONNECT BY
  18. LEVEL <= 5),
  19. leafs AS (
  20. SELECT
  21. lpad(rpad( '*',
  22. (ROWNUM -1)* 2 + 1 +(lv -1)* 2,
  23. '*'),
  24. ROWNUM + 20 + lv) leaf
  25. FROM
  26. leaf,
  27. lv),
  28. root AS (
  29. SELECT
  30. lpad(rpad( '*',
  31. 5,
  32. '*'),
  33. 24)
  34. FROM
  35. dual
  36. CONNECT BY
  37. LEVEL <= 4)
  38. SELECT
  39. leaf
  40. FROM
  41. leafs
  42. UNION ALL
  43. SELECT
  44. *
  45. FROM
  46. root;

祝大家圣诞快乐,万事如意,平平安安!

另:想了解更多 GaussDB 数据库的知识与用法,欢迎关注墨天轮“GaussDB 专栏”(地址:https://www.modb.pro/db,点击左下角的“阅读原文”或者扫描下方二维码可直达),此外,墨天轮开放了很多数据库专栏,如 GaussDB、PolarDB、OceanBase、TDSQL、GoldenDB 等众多数据库专栏,欢迎关注学习!

扩展阅读


  1. 2019,年度数据库舍 PostgreSQL 其谁?

  2. 2019,国产数据库元年开启新纪元

  3. 2019,遇见最好的 MySQL 数据库

  4. 史上最全:PostgreSQL DBA常用SQL查询语句

  5. 2019年12月数据库流行度排行:前三甲高位收官 数据库重获增长趋势

  6. 万字详解Oracle架构、原理、进程,学会世间再无复杂架构

  7. 1000行MySQL学习笔记,收藏版!

  8. 史上最全PostgreSQL体系结构

数据和云

ID:OraNews

如有收获,请划至底部,点击“在看”,谢谢!

资源下载

关注公众号:数据和云(OraNews)回复关键字获取

help,30万+下载的完整菜单栏

2019DTCC,数据库大会PPT

2018DTCC , 数据库大会PPT

2018DTC,2018 DTC 大会 PPT

ENMOBK《Oracle性能优化与诊断案例》

DBALIFE,“DBA 的一天”海报

DBA04,DBA 手记4 电子书

122ARCH,Oracle 12.2体系结构图

2018OOW,Oracle OpenWorld 资料

产品推荐

云和恩墨BethuneX  企业版,集监控、巡检、安全于一身,你的专属数据库实时监控和智能巡检平台,漂亮的不像实力派,你值得拥有!

云和恩墨zData一体机现已发布超融合版本和精简版,支持各种简化场景部署,零数据丢失备份一体机ZDBM也已发布,欢迎关注。

云和恩墨大讲堂 | 一个分享交流的地方

长按,识别二维码,加入万人交流社群

请备注:云和恩墨大讲堂

  点个“在看”  
 你的喜欢会被看到????


转载:https://blog.csdn.net/Enmotech/article/details/103691948
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场