0

如何使用 SELECT 命令或嵌套 SELECTs 而不是两个条件与OR结合使用?我知道您可以使用嵌套的 SELECT 语句实现AND,例如:

select name from (select * from students where grade > C) where age > 25  
-- select name from (select * from students where grade > C) as std1 where age > 25

代替:

select name from students where age > 25 and grade > C  

(仅使用 select 命令)。

但是如何在不使用 OR 的情况下实现 OR 条件?

SELECT name FROM students WHERE age > 25 OR grade > C
4

1 回答 1

2

OR结果应用到超集而不是子集中,因此您无法通过将过滤器应用于嵌套查询来获得相同的结果。

您可以使用以下代码重写它UNION

SELECT  *
FROM    students
WHERE   age > 25
UNION
SELECT  *
FROM    students
WHERE   grade > C

是相同的

SELECT  *
FROM    students
WHERE   age > 25 OR grade > C

, 只要有一个PRIMARY KEY定义在students.

于 2011-05-06T23:28:09.990 回答