sql 子查询中的exists  和 in

本文对比了SQL查询中IN与EXISTS关键字的使用场景及效率差异。阐述了IN适用于已知查询结果较少的情况,而EXISTS则更适合处理多个条件或预期返回大量数据的情况。同时介绍了这两种方法的基本语法及其在不同数据库系统中的应用。

exists貌似不是标准sql 

exists()是用来判断括号里面的值或者结果集是否为null的,
  返回的是bool类型的,比如select * from a where exists(select 1 from b where id=a.id), 同(select id from b where id = a.id)
如果select 1 from b where id=a.id这一句能查出来数据,那么查出来的a表中的数据是这样写是一样的
:select * from a where id in(select id from b);只不过在用in查询的时候要进行全表查询,效率没有exists高

 如果子查询中要处理的少,用in  //where t.id in ('040000000000PS','040000000000QV') 
 查询结果多,或条件多于1个用exists

select * from J_YHDA t
where exists (select null from dual) //oracle中这样写. 在子查询中使用 NULL 仍然返回结果集 等同select all .没where
别的数据库好像这样写也行
select * from J_YHDA t
 where exists (select null )

select * from TableIn where exists(select BID from TableEx where BNAME=TableIn.ANAME)
 select * from TableIn where ANAME in(select BNAME from TableEx) //这俩结果一样     (第一个相关,第二个非相关, 效率不好说)

### README 文件中 nbsp 的处理方法 在编写或编辑 `README` 文件时,遇到不间断空格(non-breaking space,  )的情况通常是因为这些字符被错误地引入文档中。Markdown 解析器会按照标准 HTML 实体解析这些特殊字符。 为了移除或替换 `README.md` 中的 ` ` 字符,可以采用以下几种方式: #### 使用文本编辑工具手动清理 大多数现代文本编辑器支持正则表达式的查找替换功能。通过这种方式可以直接定位并删除所有的 ` ` 实例。例如,在 VSCode 或 Sublime Text 中输入 `\u00A0` 来匹配不间断空格[^1]。 #### 利用脚本自动化处理 对于包含大量文件的项目库来说,手动作业效率低下且容易出错。此时可以通过编写简单的 Python 脚本来自动完成这项工作: ```python import os from pathlib import Path def replace_nbsp(file_path): with open(file_path, 'r', encoding='utf8') as file : content = file.read() # 替换所有出现的不间断空格为常规空格 updated_content = content.replace('\xa0', ' ') with open(file_path, 'w', encoding='utf8') as file: file.write(updated_content) if __name__ == "__main__": repo_root = './' # 设置仓库根路径 readme_file = Path(repo_root) / "README.md" if readme_file.exists(): replace_nbsp(readme_file) ``` 此代码片段读取指定位置下的 `README.md` 文件内容,并将其中的所有不间断空格转换成普通的 ASCII 空格后再保存回去[^2]。 #### 预防措施 为了避免将来再次发生类似情况,建议团队成员统一使用纯文本编辑器创建 Markdown 文档;另外还可以考虑设置 Git 提交前钩子(hook),用于检测是否存在不必要的 HTML 实体编码[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值