sql - 如何使用 SQL 打印出圣诞树?

标签 sql oracle sqlplus

关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

9 个月前关闭。




Improve this question




嗯,是的,这是一个不严肃的问题,但在我们许多人都经历过 2020 年之后,是时候来点轻率了。享受...

最佳答案

在 xterm 或 Windows 10 命令窗口中运行以下命令将打印树,灯光随机散布,当然还有可爱的全彩。
大家节日快乐!

set lines 350 pagesize 0
clear screen
select replace(replace(replace(r,'X',chr(27)||'[42m'||chr(27)||'[1;'||to_char(32)||'m'||'X'||chr(27)||'[0m'),
    'T',chr(27)||'[43m'||chr(27)||'[1;'||to_char(33)||'m'||'T'||chr(27)||'[0m'),
    '@',chr(27)||'[33m'||chr(27)||'[1;'||to_char(31)||'m'||'@'||chr(27)||'[0m')
from ( select lpad(' ',20-e-i)|| case when dbms_random.value < 0.3 then substr(s,1,e*2-3+i*2) 
       else substr(substr(s,1,dbms_random.value(1,e*2-3+i*2-1))||'@'||s,1,e*2-3+i*2) end r
from ( select rpad('X',40,'X') s,rpad('T',40,'T') t from dual ) , 
( select level i, level+2 hop from dual connect by level <= 4 ) , lateral
( select level e from dual connect by level <= hop ) union all select lpad(' ',17)||substr(t,1,3)
from ( select rpad('X',40,'X') s,rpad('T',40,'T') t from dual ) connect by level <= 5 );
enter image description here

关于sql - 如何使用 SQL 打印出圣诞树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65434426/

相关文章:

sql - Oracle - 文字与格式字符串错误不匹配

regex - Oracle中限制字符串中字符的最快方法是什么?

oracle - Ansible playbook 执行 Oracle 脚本

mysql - 如何从两个数据库查询数据并按范围对结果进行分组

sql - 无法绑定(bind)多部分标识符 "INSERTED. "

sql - 在Oracle中,如何搜索表的列名?

sql - 如何从sqlplus中的表中选择spool的文件名

sql - 条件分组子句(sqlite)

sql - 解析逗号分隔的字符串以生成Where子句中的IN字符串列表

mysql - SQL Plus 如果同一帐户没有两个不同的结果,如何只显示行