【发布时间】:2023-03-23 13:08:01
【问题描述】:
我正在尝试编写一个 SQL 语句,该语句按员工编号、姓名、job_id 和根据他们的 job_id 修改的薪水返回员工列表。如果员工是 VP,则 SELECT 语句应返回增加 %20 的薪水,但如果他们是 MAN,则应返回增加 %30 的薪水。是否可以在没有工会的情况下返回两种不同的修改工资?这是我目前所拥有的。
SELECT 'Employee ', EMPLOYEE_ID,
'named ', FIRST_NAME || ' ' || LAST_NAME AS "Full Name",
'with Job ID of ', JOB_ID,
'will have a new salary of ', SALARY
FROM EMPLOYEES
WHERE ROUND(SALARY*1.2,2) IN (SELECT ROUND(SALARY*1.2,2)
FROM EMPLOYEES
WHERE JOB_ID LIKE '%VP')
OR ROUND(SALARY*1.3,2) IN (SELECT ROUND(SALARY*1.3,2)
FROM EMPLOYEES
WHERE JOB_ID LIKE '%MAN');
【问题讨论】:
-
我认为您的意思是
LIKE 'VP%表示以 VP 和其他内容开头,现在表示以VP结尾或以MAN结尾。 -
@Juan Carlos Oropeza:也许这就是结构。所以它可以是任何“男人”,例如“超人”或“女人”;-)
-
@ThorstenKettner 这正好证明了我的观点;)
-
是的,它是结构,这就是我使用通配符的原因。
标签: sql select oracle-sqldeveloper