简笔画圣诞树的画法


转眼间,圣诞节的钟声已经敲响,愿大家节日快乐。使用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绘制的圣诞树希望能给大家带来节日的喜悦。