在oracle中 查询公司员工的编号、用户名(first_name和last_name连接成一个字符串)、职位。要求职位从第四位起匹配ACCOUNT,同时last_name中至少包含一个e字母。
时间: 2024-10-20 09:14:47 浏览: 39
Oracle数据库中对null值的排序及mull与空字符串的区别
在Oracle SQL中,你可以使用`DECODE`函数来分割职位字段,然后结合`LIKE`关键字来筛选出满足条件的记录。假设员工信息在一个名为`employees`的表中,字段有`emp_id`(编号)、`username`(first_name和last_name组合)、`job_title`(职位)。以下是相应的查询语句:
```sql
SELECT emp_id,
CONCAT(first_name, ' ', last_name) AS username,
DECODE(
SUBSTR(job_title, 1, 3),
'ACO',
job_title,
NULL
) AS position
FROM employees
WHERE DECODE(
SUBSTR(job_title, 4),
'A%',
TRUE,
FALSE
) = TRUE AND
lower(last_name) LIKE '%e%';
```
这个查询首先使用`DECODE`检查职位是否以"ACCOUNT"开头,如果不符合则返回NULL。接着通过`LIKE`查找`last_name`字段中包含小写字母'e'的记录。请注意,实际执行时,`SUBSTR`可能会返回空字符串而不是'A%',所以这里假设职位长度至少为4。
阅读全文