Buon Natale e felice anno nuovo
Siamo in periodo natalizio, quindi mi sono permesso di addobbare un albero virtuale per tutti i dba.
Concedetemi di augurare “Buon Natale e felice anno nuovo” a tutti voi.
Ovviamente, ad ognuno il suo “dialetto” 😉
Oracle
SQL> set lines 132 pages 60 trims on feed off head off
SQL> SELECT RPAD(' ', 20, ' ')||'X<<<' FROM dual
2 UNION ALL
3 SELECT RPAD(' ', 20, ' ')||'*' FROM dual
4 UNION ALL
5 SELECT LPAD(SUBSTR(RPAD('*', 20, '*'), 1, level * 2), 20, ' ') ||
6 '|' ||
7 RPAD(SUBSTR(RPAD('*', 20, '*'), 1, level * 2), 20, ' ')
8 FROM dual
9 CONNECT BY LEVEL <= 10;
X<<<
*
**|**
****|****
******|******
********|********
**********|**********
************|************
**************|**************
****************|****************
******************|******************
********************|********************
SQL>
MySQL
mysql> SELECT CONCAT(REPEAT(' ', 20),'X<<<') as xmas_tree
-> UNION ALL
-> SELECT CONCAT(REPEAT(' ', 20),'*')
-> UNION ALL
-> SELECT CONCAT(LPAD(SUBSTR(REPEAT('*', 20), 1, @n := @n + 1), 20, ' '),
-> '|',
-> RPAD(SUBSTR(REPEAT('*', 20), 1, @n), 20, ' '))
-> FROM `information_schema`.`tables`,
-> (SELECT @n := 0) t
-> LIMIT 22;
+-------------------------------------------+
| xmas_tree |
+-------------------------------------------+
| X<<< |
| * |
| *|* |
| **|** |
| ***|*** |
| ****|**** |
| *****|***** |
| ******|****** |
| *******|******* |
| ********|******** |
| *********|********* |
| **********|********** |
| ***********|*********** |
| ************|************ |
| *************|************* |
| **************|************** |
| ***************|*************** |
| ****************|**************** |
| *****************|***************** |
| ******************|****************** |
| *******************|******************* |
| ********************|******************** |
+-------------------------------------------+
22 rows in set (0.01 sec)
mysql>
SQLServer
1> SELECT CONVERT(VARCHAR(45), REPLICATE(' ', 20) + 'X<<<')
2> UNION ALL
3> SELECT CONVERT(VARCHAR(45),
4> REPLICATE(' ', a + b)
5> + REPLICATE('*', 20 - (a + b)) + '|'
6> + REPLICATE('*', 20 - (a + b)))
7> FROM (VALUES (5),(4),(3),(2),(1)) x(a)
8> CROSS JOIN (VALUES (15),(10),(5),(0)) y(b);
9> GO
---------------------------------------------
X<<<
|
*|*
**|**
***|***
****|****
*****|*****
******|******
*******|*******
********|********
*********|*********
**********|**********
***********|***********
************|************
*************|*************
**************|**************
***************|***************
****************|****************
*****************|*****************
******************|******************
*******************|*******************
(21 rows affected)
1>