简笔画圣诞树的画法
转眼间,圣诞节的钟声已经敲响,愿大家节日快乐。使用GaussDB T(也就是GaussDB 100)绘制的一棵圣诞树,纯国产,更加喜庆。
不多说,直接上图:
这里有一段SQL代码,可以绘制出一棵漂亮的圣诞树:
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 AS "圣诞快乐!"
FROM
(SELECT LEVEL ENMOTECH, MAX(LEVEL) OVER (PARTITION BY 1) GAO FROM dual CONNECT BY LEVEL
UNION ALL
SELECT lpad(lpad('',3,''),19) FROM dual CONNECT BY LEVEL
这段SQL代码与Oracle完全兼容,在Oracle中的执行效果如下:
总结一下,通过运用一些特殊的查询语法,GaussDB表现得非常出色:
Case When语句;
LAG分析函数;
CONNECT BY语句;
杨长老认为我绘制的这棵圣诞树还不够美观,他根据公司的祝贺图重新绘制了一棵。杨长老的圣诞树是这样的:
再来看杨长老的代码:
sql
WITH leaf AS (
SELECT lpad(rpad('', (ROWNUM-1) 2 + 1, ''), ROWNUM + 20) AS leaf, ROWNUM AS num
FROM dual CONNECT BY LEVEL
lv AS (SELECT ROWNUM AS lv FROM dual CONNECT BY LEVEL
leafs AS (SELECT lpad(rpad('', (ROWNUM-1) 2 + 1 +(lv-1) 2, ''), ROWNUM + 20 + lv) AS leaf FROM leaf, lv),
root AS (SELECT lpad(rpad('', 5, ''), 24) FROM dual CONNECT BY LEVEL
SELECT leaf FROM leafs UNION ALL SELECT FROM root;
祝大家圣诞快乐,万事如意,平平安安!这棵由GaussDB绘制的圣诞树希望能给大家带来节日的喜悦。