根据工资在字符串后添加'*'

时间:2017-04-10 15:09:25

标签: sql oracle

我有NameSal列,我应该创建一个Name字符串,然后根据工资(1000 $ = *)输入*,例如

Clark | 5000$
Smith | 4000$

看起来像:

EMPLOYEES_AND_THEIR_SALARIES
-------------------------------
Clark  *****
Smith  ****

感谢您的回复。

5 个答案:

答案 0 :(得分:1)

您可以将rpad()用于此目的。假设薪水存储为数字:

select name, rpad('*', salary / 1000, '*')

答案 1 :(得分:1)

以下内容将提供您正在寻找的结果:

SELECT NAME, RPAD('*', TRUNC(SAL / 1000), '*')
  FROM YOUR_TABLE

祝你好运。

答案 2 :(得分:0)

据我所知,下面的内容应该足以满足您的需求。

select first_name ||'  '|| rpad('**',length(salary),'*') Name   from employee;
See Demo;

表数据

SQL> select first_name , salary ,length(salary) from employee;

FIRST_NAME               SALARY LENGTH(SALARY)
-------------------- ---------- --------------
Dan                        1234              4
Helen                      3213              4
Akiko                      9000              4
Jackie                    40000              5
XING                      40000              5

输出:此处*与工资长度相同。

  SQL> select first_name ||'  '|| rpad('**',length(salary),'*') Name
      from employee    ;

    NAME
    --------------------------------------------------------------------------------
    Dan  ****
    Helen  ****
    Akiko  ****
    Jackie  *****
    XING  *****

答案 3 :(得分:0)

CREATE TABLE replicate_example (
Salary INT
)
INSERT INTO dbo.replicate_example
    ( Salary )
VALUES  ( 3000 ), (5000)

SELECT CAST(Salary AS NVARCHAR) + ' ' + REPLICATE('*',Salary / 1000) FROM     dbo.replicate_example

答案 4 :(得分:0)

尝试

SELECT ename, 
       LPAD(' ', TRUNC(( sal * 12 ) / 1000), '*')sal 
FROM   test_j2

Test results