如果普通SQL不存在主键,则失败

时间:2014-11-12 14:10:56

标签: sql primary-key

我们想要按类别查找产品。

select * from product p where p.category in ('cat1', 'cat2')

如果cat1或cat2中没有产品,则此SQL将返回0行,不幸的是,如果cat1和cat2拼写错误,则会返回0行。如果这些类别不存在,我想获得SQL异常。

这里用伪代码说明,注意使用保证

select * from product p where p.category in 
(select c.id from category c where c.id guaranteed in ('cat1', 'cat2'))

或使用连接而不是子选择。主键现在是一个很容易出错的数字

select p.* from product p 
inner join category c on c.id = p.category
where c.id guaranteed in (56, 234)

如果不是在纯SQL中,Oracle或SQL服务器是否具有此功能?

0 个答案:

没有答案