写个function:create or replace pf( sal  in  number)
return varchar2 is
lv number(5);
lvStr  
begin
   for lv in 0..sal/100 loop
     lvstr :=lvstr +'*'
   end loop; 
end;sql> select ename, pf(sal) from emp;

解决方案 »

  1.   

    假如不用function及procedure,只用sql行不?
      

  2.   

    试试这句:select ename, sal,lpad(sal, sal/100,'*') from emp;
      

  3.   

    补个用一个空格串计算好了select ename, rtrim(lpad(' ', sal/100,'*')) from emp
      

  4.   

    select ename, rtrim(lpad(' ', sal/100,'*')) from emp这个可行有一个格式化问题这样选出来后,全部分行了,有办法格式为正常的吗?
    ENAME
    ----------
    SALARY
    ------------------------------------FORD
    *****************************SMITH
    *******SCOTT
    *****************************
    ENAME
    ----------
    SALARY
    ------------------------------------ADAMS
    **********
    13 rows selected.
    我希望的样子像这样SQL> select ename, sal/100 salary  from emp;ENAME          SALARY
    ---------- ----------
    KING               50
    MILLER             13
    BLAKE            28.5
    CLARK            24.5
    JONES           29.75
    05TIN            12.5
    ALLEN              16
    TURNER             15
    WARD             12.5
    FORD               30
    SMITH               8ENAME          SALARY
    ---------- ----------
    SCOTT              30
    ADAMS              1113 rows selected.
      

  5.   

    SQL>col SALARY format a20