【发布时间】:2011-12-21 21:51:35
【问题描述】:
例如,您有一个只有一列的简单表格。 即。
CREATE TABLE movies (title VARCHAR2(255 BYTE))
使用以下数据进行设置:
INSERT INTO movies (title) VALUES ('Scream');
INSERT INTO movies (title) VALUES ('Blair Witch');
INSERT INTO movies (title) VALUES ('Friday the 13th');
INSERT INTO movies (title) VALUES ('Scary Movie');
INSERT INTO movies (title) VALUES ('Hide and Seek');
INSERT INTO movies (title) VALUES ('Alien vs Predator');
是否有单个查询或 PL/SQL 将动态执行以下操作(即,无需为每个值手动执行“UNION select 'scream' from dual...”)?
显然这个查询是错误的,但你明白了:
Select * from movies
where title in (
'Scream',
'Scary Movie',
'Exorcist',
'Dracula',
'Saw',
'Hide and Seek'
)
期望的结果是“WHERE TITLE IN”子句中的每个值的记录,其中该记录不存在于表中。 即。
'Exorcist'
'Dracula'
'Saw'
【问题讨论】:
-
所有选择的行都来自关系(表)。您必须在某个时刻创建一个表,可能像您所说的那样为每个值使用“UNION select 'scream' from dual...”。