반응형
SQL로 크리스마스 트리를 인쇄하려면 어떻게 해야 합니까?
글쎄요, 이것은 심각한 문제가 아닙니다. 하지만 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 );
여기 MSSQL로 크리스마스 트리를 그리는 코드가 있습니다.
DECLARE @g TABLE (g GEOMETRY, ID INT IDENTITY(1,1));
-- Adjust Color
INSERT INTO @g(g) SELECT TOP 29 CAST('POLYGON((0 0, 0 0.0000001, 0.0000001 0.0000001, 0 0))' as geometry) FROM sys.messages;
-- Build Christmas Tree
INSERT INTO @g(g) VALUES (CAST('POLYGON((0 0,900 0,450 400, 0 0 ))' as geometry).STUnion(CAST('POLYGON((80 330,820 330,450 640,80 330 ))' as geometry)).STUnion(CAST('POLYGON((210 590,690 590,450 800, 210 590 ))' as geometry)));
-- Adjust Color
INSERT INTO @g(g) SELECT TOP 294 CAST('POLYGON((0 0, 0 0.0000001, 0.0000001 0.0000001, 0 0))' as geometry) FROM sys.messages;
-- Build a Star
INSERT INTO @g(g) VALUES (CAST('POLYGON ((450 910, 465.716 861.631, 516.574 861.631, 475.429 831.738, 491.145 783.369, 450 813.262, 408.855 783.369, 424.571 831.738, 383.426 861.631, 434.284 861.631, 450 910))' as geometry));
-- Build Colored Balls
INSERT INTO @g(g) SELECT TOP 2 CAST('POLYGON((0 0, 0 0.0000001, 0.0000001 0.0000001, 0 0))' as geometry) FROM sys.messages;
INSERT INTO @g(g) VALUES (CAST('CURVEPOLYGON (CIRCULARSTRING (80 290, 110 320, 140 290, 110 260, 80 290))' as geometry));
INSERT INTO @g(g) SELECT TOP 2 CAST('POLYGON((0 0, 0 0.0000001, 0.0000001 0.0000001, 0 0))' as geometry) FROM sys.messages;
INSERT INTO @g(g) VALUES (CAST('CURVEPOLYGON (CIRCULARSTRING (760 290, 790 320, 820 290, 790 260, 760 290))' as geometry));
INSERT INTO @g(g) SELECT TOP 3 CAST('POLYGON((0 0, 0 0.0000001, 0.0000001 0.0000001, 0 0))' as geometry) FROM sys.messages;
INSERT INTO @g(g) VALUES (CAST('CURVEPOLYGON (CIRCULARSTRING (210 550, 240 580, 270 550, 240 520, 210 550))' as geometry));
INSERT INTO @g(g) SELECT TOP 46 CAST('POLYGON((0 0, 0 0.0000001, 0.0000001 0.0000001, 0 0))' as geometry) FROM sys.messages;
INSERT INTO @g(g) VALUES (CAST('CURVEPOLYGON (CIRCULARSTRING (630 550, 660 580, 690 550, 660 520, 630 550))' as geometry));
SELECT g FROM @g ORDER BY ID;
GO
공간 결과 출력
이 연습에서는 다음 공간 데이터와 방법을 사용했습니다.
POLYGON - 2-Dimensional
표면적("트리", "별" 및 "색상 조정" 영역)
CIRCULARSTRING
원형 호 세그먼트 모음(볼 원)
CURVEPOLYGON
링("컬러 볼")으로 정의된 2차원 표면적.STUnion - 두 지오메트리 인스턴스를 결합하는 방법입니다.
도면은 다음 단계에 따라 작성되었습니다.
- 트리의 색상을 조정했습니다.저는 SSMS 팔레트에서 30번째 색상을 얻기 위해 29개의 더미 삼각형을 그립니다. 이것은 일종의 녹색입니다.
- 빌드 3
POLYGON
삼각형을 조합합니다. - 별의 금색을 얻기 위해 다른 색 조정을 했습니다.
- 빌드됨
POLYGON
별 모양으로 - 각각 앞에 색상 조정이 있는 네 개의 색상 원을 작성합니다.
- 스크립트를 실행합니다.
- 전환
"Spatial Result"
SSMS의 탭
행복한 설날 보내요, 모두들!
언급URL : https://stackoverflow.com/questions/65434426/how-do-i-print-out-a-christmas-tree-with-sql
반응형
'programing' 카테고리의 다른 글
Oracle의 TimeStamp 열에서 시간 부분 추출 (0) | 2023.07.20 |
---|---|
스프링 부트의 유닛 테스트 또는 통합 테스트 (0) | 2023.07.20 |
명령 프롬프트에서 SELECT 쿼리의 출력을 어떻게 확인합니까? (0) | 2023.07.20 |
Oracle이 WITH 절에 alias_name이 동일한 하위 쿼리를 여러 개 허용하는 이유는 무엇입니까? (0) | 2023.07.20 |
오라클의 클라이언트와 cx_Oracle을 설치하지 않고 오라클 db에 액세스하려면 어떻게 해야 합니까? (0) | 2023.07.20 |