加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 确定是否至少有一行具有给定条件

发布时间:2020-12-12 16:14:12 所属栏目:MsSql教程 来源:网络整理
导读:员工表有ID和NAME列.名称可以重复.我想知道如果至少有一行名字叫’kaushik%’. 所以查询应该返回true / false或1/0. 是否可以使用单个查询找到它. 如果我们尝试像 select count(1) from employee where name like 'kaushik%' 在这种情况下,它不会返回true /
员工表有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在找到第一个匹配行后立即停止查找.

第一种方法有点紧凑,但是对我来说,第二种方法有一点更清楚,因为你真的想确定一个特定的行是否存在,而不是尝试计数.但是第一种方法也很容易理解.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读