员工表有ID和NAME列.名称可以重复.我想知道如果至少有一行名字叫’kaushik%’.
所以查询应该返回true / false或1/0.
是否可以使用单个查询找到它.
如果我们尝试像
select count(1) from employee where name like 'kaushik%'
在这种情况下,它不会返回true / false.
我们也在迭代表中的所有记录.在简单的sql中有这样的方式,以便在获取满足条件的第一个记录时,应该停止检查更多的记录.
或者这样的东西只能在Pl / sql块中处理?
编辑*
贾斯汀提供的第一种方法看起来是正确的答案
SELECT COUNT(*) FROM employee WHERE name like 'kaushik%' AND rownum = 1
解决方法
通常,您也可以表达这一点
SELECT COUNT(*) FROM employee WHERE name like 'kaushik%' AND rownum = 1
其中rownum = 1谓词允许Oracle在找到第一个匹配行后立即停止查找
SELECT 1 FROM dual WHERE EXISTS( SELECT 1 FROM employee WHERE name like 'kaushik%' )
其中EXISTS子句允许Oracle在找到第一个匹配行后立即停止查找.
第一种方法有点紧凑,但是对我来说,第二种方法有一点更清楚,因为你真的想确定一个特定的行是否存在,而不是尝试计数.但是第一种方法也很容易理解.