如何使用SQL打印星形三角形

Tej*_*eja 4 sql database oracle

是否几乎可以在SQL中创建如下所示的星形三角形.我知道这可以在任何其他编程语言(如C,C++,Java)中轻松完成,但想知道它是否真的可以只用SQL或PL /SQL.我尝试使用Oracle中的双表来处理它但无法通过它.

  *              *
 * *             * * 
* * *    or      * * *
Run Code Online (Sandbox Code Playgroud)

如果有人知道,有人可以请一些.

Jus*_*ave 8

最简单的方法就是这样.如果你想建立等边三角形而不是直角三角形,你可以变得更复杂.

SQL> ed
Wrote file afiedt.buf

  1  select rpad( '* ', level*2, '* ' )
  2    from dual
  3* connect by level <= 3
SQL> /

RPAD('*',LEVEL*2,'*')
--------------------------------------------------------------------------------
*
* *
* * *
Run Code Online (Sandbox Code Playgroud)

  • 该查询是否需要按级别向_guarantee_生成三角形? (2认同)

小智 5

select rpad('* ', level * 2, '* ')
  from dual connect by
    level <= 10
* 
* * 
* * * 
* * * * 
* * * * * 
* * * * * * 
* * * * * * * 
* * * * * * * * 
* * * * * * * * * 
* * * * * * * * * * 


select rpad(' ',r*2,' ')||rpad('* ',l*2,'* ') k 
  from ( select level l,row_number() over(order by null) r 
            from dual 
           connect by level<=10 
         order by l desc)

  * * * * * * * * * * 
    * * * * * * * * * 
      * * * * * * * * 
        * * * * * * * 
          * * * * * * 
            * * * * * 
              * * * * 
                * * * 
                  * * 
                    *



select rpad(' ',l*2,' ')||rpad('* ',r*2,'* ') k 
 from ( select level l,row_number() over(order by null) r 
          from dual 
         connect by level<=10 
         order by l desc)

                    * 
                  * * 
                * * * 
              * * * * 
            * * * * * 
          * * * * * * 
        * * * * * * * 
      * * * * * * * * 
    * * * * * * * * * 
  * * * * * * * * * * 

select rpad(' ',l,' ')||rpad('* ',r*2,'* ') k 
from ( select level l,row_number() over(order by null) r 
        from dual 
       connect by level<=10 
       order by l desc) 

      * 
     * * 
    * * * 
   * * * * 
  * * * * * 
 * * * * * * 
* * * * * * *        
Run Code Online (Sandbox Code Playgroud)