随着圣诞节的到来,
很多城市也都张灯结彩,
处处充满了节日气息。
圣诞节当然离不开圣诞树啦!
和家人一起挂上圣诞装饰,
树下放上互相准备的小礼物,
小小的仪式感,
充满了浪漫与温馨。
今天,
我们将教你在 PieCloudDB Database 中
"种"下今年的圣诞树!
就像种树前需要松土、挖种植坑,
在拥有一棵圣诞树之前,
我们也需要准备一下环境。
PieCloudDB 云上云版提供免费试用。
打开浏览器,
输入「app.pieclouddb.com」;
在注册页面填入信息后,
点击「完成注册」,
即可免费试用 PieCloudDB 云原生虚拟数仓。
在左侧菜单栏进入「虚拟数仓」页面,
点击「新建虚拟数仓」,填入「christmas_land」,
选择执行节点数量后,点击「确认」。
新的虚拟数仓将在创建后自动启动并运行。
当虚拟数仓的状态显示「运行中」后,
即可使用该计算资源。
点击菜单栏「数据洞察」进入功能页面。
点击「文件」,新建 SQL 文件;
可将 SQL 文件重命名为「christmas_tree」。
单击打开该 SQL 文件。
选择默认数据库「openpie」,与虚拟数仓「christmas_land」,
相应文件内容便会在「查询编辑器」中展示。
如果你还想
探索 PieCloudDB 云上云更多功能,
欢迎点击菜单栏左下方「新手指引」,
阅读相关文档。
准备工作已经完成啦,
现在我们准备"种"树啦!
在「查询编辑器」中输入这段 SQL:
sql
WITH RECURSIVE christmas_tree(level, max_level) AS (
SELECT 1, 7 -- 设置最大层数
UNION ALL
SELECT level + 1, max_level FROM christmas_tree WHERE level < max_level
)
SELECT
CASE
WHEN level = max_level THEN lpad('', max_level - 1, ' ') || repeat('|',1) || repeat('|',1)
ELSE lpad('', max_level - level, ' ') || repeat('*', (level * 2) - 1)
END AS my_christmas_tree
FROM
christmas_tree;
执行后,你便可以得到这样一棵这样的圣诞树:
有了一颗圣诞树,
现在需要为它挂上各种装饰啦!
我们再运行一下这段 SQL:
sql
WITH RECURSIVE christmas_tree(level, max_level) AS (
SELECT 1, 7 -- 设置最大层数
UNION ALL
SELECT level + 1, max_level FROM christmas_tree WHERE level < max_level
)SELECT
CASE
WHEN level = 1 THEN lpad('', max_level - level, ' ') || repeat('*', 1) || repeat('.', (level * 2) - 2)
WHEN level = max_level THEN lpad('', (max_level - 1), ' ') || repeat('|',1) || repeat('|',1)
ELSE lpad('', max_level - level, ' ') || repeat('*', 1) || repeat('.', (level * 2) - 2) || repeat('*', 1)
END AS tree
FROM
christmas_tree;
圣诞树上挂满了漂亮的小彩灯,
在冬夜里,温暖了整个房间。
如果你和我一样,
已经沉浸在这节日的喜悦中,
你可以输入这段 SQL:
sql
CREATE OR REPLACE FUNCTION generate_tree_row(level INT, max_level INT)
RETURNS TEXT AS $$
BEGIN
IF level = 1 THEN
RETURN lpad('', max_level - level, ' ') || repeat('*', 1) || repeat('.', (level * 2) - 2);
ELSIF level = max_level THEN
RETURN lpad('', (max_level - 1), ' ') || repeat('|', 1) || repeat('|', 1);
ELSE
RETURN lpad('', max_level - level, ' ') || repeat('*', 1) || repeat('.', (level * 2) - 2) || repeat('*', 1);
END IF;
END;
$$ LANGUAGE plpgsql;
WITH RECURSIVE christmas_tree(level, max_level) AS (
SELECT 1, 7 -- 设置最大层数
UNION ALL
SELECT level + 1, max_level FROM christmas_tree WHERE level < max_level
) SELECT
generate_tree_row(level, max_level) AS tree,
generate_tree_row(level, max_level) AS tree2,
generate_tree_row(level, max_level) AS tree3
FROM
christmas_tree;
现在,
你得到了一个圣诞树森林!
圣诞树「种」好啦!
愿这棵小树满载着对未来的祝福与期许,
和你一起度过
这个充满快乐和祥和的圣诞节,
祝大家圣诞快乐!