转眼就是圣诞的节日,祝大家节日快乐。用 GaussDB T (也就是 GaussDB 100)绘制一棵圣诞树,纯国产,更喜庆。
话不多说,上图:
SQL如下:
-
SELECT
-
CASE WHEN ENMOTECH =
1 THEN lpad(
'*',
-
GAO,
-
' ')
-
ELSE lpad(
' ',
-
GAO +
1-ENMOTECH,
-
' ') || rpad(
'*',
-
lag(ENMOTECH) OVER (PARTITION BY
1
-
ORDER BY
-
ENMOTECH) + ENMOTECH
-2,
-
'*')
-
END
"圣诞快乐!"
-
FROM
-
(SELECT
-
LEVEL ENMOTECH ,
-
MAX(LEVEL) OVER (PARTITION BY
1) GAO
-
FROM dual
-
CONNECT BY LEVEL <
19 )
-
UNION ALL
-
SELECT
-
lpad(lpad(
'*',
3,
'*'),
19)
-
FROM dual
-
CONNECT BY LEVEL <
5;
主要,这段 SQL 代码,和 Oracle 完全兼容,在 Oracle 中执行效果如下:
总结一下,在使用了非常特殊的查询语法后,GaussDB 工作的非常愉快:
-
Case When;
-
LAG 分析函数;
-
CONNECT by;
当然,杨长老说了,我这棵圣诞树不太好看,他根据公司的祝贺图重新画了一个,杨长老说圣诞树应该是这样的:
再来图:
上代码:
-
WITH leaf AS (
-
SELECT
-
lpad(rpad(
'*',
-
(ROWNUM
-1)*
2 +
1,
-
'*'),
-
ROWNUM +
20) leaf,
-
ROWNUM
-
FROM
-
dual
-
CONNECT BY
-
LEVEL <=
3),
-
lv AS (
-
SELECT
-
ROWNUM lv
-
FROM
-
dual
-
CONNECT BY
-
LEVEL <=
5),
-
leafs AS (
-
SELECT
-
lpad(rpad(
'*',
-
(ROWNUM
-1)*
2 +
1 +(lv
-1)*
2,
-
'*'),
-
ROWNUM +
20 + lv) leaf
-
FROM
-
leaf,
-
lv),
-
root AS (
-
SELECT
-
lpad(rpad(
'*',
-
5,
-
'*'),
-
24)
-
FROM
-
dual
-
CONNECT BY
-
LEVEL <=
4)
-
SELECT
-
leaf
-
FROM
-
leafs
-
UNION ALL
-
SELECT
-
*
-
FROM
-
root;
-
祝大家圣诞快乐,万事如意,平平安安!
另:想了解更多 GaussDB 数据库的知识与用法,欢迎关注墨天轮“GaussDB 专栏”(地址:https://www.modb.pro/db,点击左下角的“阅读原文”或者扫描下方二维码可直达),此外,墨天轮开放了很多数据库专栏,如 GaussDB、PolarDB、OceanBase、TDSQL、GoldenDB 等众多数据库专栏,欢迎关注学习!
扩展阅读
数据和云
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