stream中filter查询王姓
时间: 2023-11-18 14:04:40 浏览: 165
可以使用Java 8中的Stream API来实现这个功能。具体代码如下:
```
List<String> names = Arrays.asList("王一", "李二", "张三", "王四", "赵五");
List<String> filteredNames = names.stream()
.filter(name -> name.startsWith("王"))
.collect(Collectors.toList());
System.out.println(filteredNames);
```
输出结果为:[王一, 王四]
相关问题
针对于教学数据库jxgl进行T-SQL程序设计查询查询王姓学生的总数、在各系的人数分布以及每个人的姓名、性别、年龄。
以下是针对教学数据库jxgl进行T-SQL程序设计的查询语句,可以获取王姓学生的总数、在各系的人数分布以及每个人的姓名、性别、年龄。
```
-- 获取王姓学生的总数
SELECT COUNT(*) AS '王姓学生总数' FROM student WHERE Sname LIKE '王%';
-- 获取各系中王姓学生的人数分布
SELECT department.Dname AS '所在系', COUNT(*) AS '王姓学生人数'
FROM student, department
WHERE student.Sdept = department.Dno AND student.Sname LIKE '王%'
GROUP BY department.Dname;
-- 获取每个王姓学生的姓名、性别、年龄以及所在系
SELECT student.Sname AS '姓名', student.Ssex AS '性别', student.Sage AS '年龄', department.Dname AS '所在系'
FROM student, department
WHERE student.Sdept = department.Dno AND student.Sname LIKE '王%';
```
请注意,以上查询语句仅供参考,具体查询方式可能会因为数据库结构不同而有所不同,需要根据实际情况进行修改。
用ORACLE查询每个系王姓教师人数,输出系名和人数(如果该系没有王姓老师,输出人数为0),要求采用子查询和相关子查询两种写法
在Oracle SQL中,你可以使用子查询和嵌套子查询来达到这个目的。下面是两种不同的写法:
**子查询写法**:
```sql
SELECT department_name, COUNT(*) AS teacher_count
FROM teachers
WHERE last_name = '王'
GROUP BY department_name
UNION ALL
SELECT department_name, 0 AS teacher_count
FROM departments
WHERE department_id NOT IN (SELECT department_id FROM teachers WHERE last_name = '王');
```
这里首先找出所有姓王的教师所在的系部及其人数,然后通过一个子查询排除掉那些在教师表中不存在的系部,并对剩余的系部填充0作为人数。
**嵌套子查询写法**:
```sql
SELECT t.department_name,
COALESCE(COUNT(t1.teacher_id), 0) AS teacher_count
FROM (
SELECT department_id
FROM teachers
WHERE last_name = '王'
) t1
LEFT JOIN teachers t ON t1.department_id = t.department_id
GROUP BY t.department_name;
```
这里先创建一个内部子查询找到姓王的教师的系部ID列表,然后用LEFT JOIN将这些系部ID与全体教师关联起来,最后计算每个系部的教师数,如果没有结果就显示0。
阅读全文