select 1 from 浅析
一、http://www.cnblogs.com/weiwcn/archive/2008/03/24/1120079.html
今天看到项目代码里有这条语句,不懂select 1 from XXXXXXX里的1是何意,查了一番才知道:
1、select 1 from mytable;与select anycol(目的表集合中的任意一行) from mytable;与select * from mytable 作用上来说是没有差别的,都是查看是否有记录,一般是作条件用的。select 1 from 中的1是一常量,查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。
2、查看记录条数可以用select sum(1) from mytable;等价于select sum(*) from mytable;
3、实际项目SQL:
select c_insrnc_cde, c_nme_cn
from t_prd_ins a
where a.c_prod_no = '01'
and not exists
(select 1
from (select d.c_insrnc_cde, a.c_nme_cn
from t_prd_ins a,
tb_bas_ply_policy_rdr c,
tb_bas_ply_policy_rdr_list d
where a.c_insrnc_cde = d.c_insrnc_cde
and d.c_policy_id = c.c_policy_id
and d.c_seq_no = c.c_seq_no
and a.c_kind_no = '01'
and c.c_dpt_cde = '101' ----机构树中取出机构
and c.c_prod_no = '01'
and c.t_effc_tm <= TO_DATE('2007-9-5', 'YYYY-MM-DD')
and c.t_expd_tm >= TO_DATE('2007-9-5', 'YYYY-MM-DD')
and c.c_work_mode = '00501'
and c.c_reach_area = '00701'
) t
where t.c_insrnc_cde = a.c_insrnc_cde);
二、http://blog.csdn.net/wangyihust/archive/2009/02/05/3863758.aspx
测试场景:(转自网络文献)
table表是一个数据表,假设表的行数为10行。
1:select 1 from table 增加临时列,每行的列值是写在select后的数,这条sql语句中是1
2:select count(1) from table 不管count(a)的a值如何变化,得出的值总是table表的行数
3:select sum(1) from table 计算临时列的和
在SQL SERVER中用 1 测试了一下,发现结果如下:
1:测试结果,得出一个行数和table表行数一样的临时列(暂且这么叫,我也不知道该叫什么),每行的列值是1;
2:得出一个数,该数是table表的行数;
3:得出一个数,该数是table表的行数;
然后我又用“2”测试,结果如下:
1:得出一个行数和table表行数一样的临时列,每行的列值是2;
2:得出一个数,该数是table表的行数;
3:得出一个数,该数是table表的行数×2的数
然后我又用更大的数测试:
1:得出一个行数和table表行数一样的临时列,每行的列值是我写在select后的数;
2:还是得出一个数,该数是table表的行数;
3:得出一个数,该数是table表的行数×写在select后的数
综上所述:第一种的写法是增加临时列,每行的列值是写在select后的数;第二种是不管count(a)的a值如何变化,得出的值总是table表的行数;第三种是计算临时列的和。
语句if not exists(select 1 from deleted d join inserted i on d.ID=i.ID
and d.col1=1 and i.col1=2)
if not exists 如果不存在
(..)这里该是验证更新,更新前的id等于更新后的id,并且更新前col的值是1,更新后的值是2
select 1 from 浅析相关推荐
- select函数使用浅析
一.函数原型及参数说明 int select(int maxfdp, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timev ...
- jeee的基础知识(转载)
Servlet: 1)servlet : servlet是一个特殊的java程序,需要在web服务器上运行,并接收和响应客户端的请求,遵循http协议. 2)Servlet;作用: 主要用于控制层. ...
- ORACLE-SQL较全面笔记
-- 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba --然后,解除对scott用户的锁 alter use ...
- select * 映射错误_高性能IO模型分析-浅析Select、Poll、Epoll机制(三)
本章(第三章)内容其实和第二章内容,都是第一章内容的延伸.第二章内容是第一章内容的延伸,本章内容则是第一章内容再往底层方面的延伸,也是面试中考察网络方面知识时,可能会问到的几个点. select.po ...
- Select For update语句浅析
Select -forupdate语句是我们经常使用手工加锁语句.通常情况下,select语句是不会对数据加锁,妨碍影响其他的DML和DDL操作.同时,在多版本一致读机制的支持下,select语句也不 ...
- Linux下的I/O多路复用select,poll,epoll浅析
转载:http://blog.csdn.net/u011573853/article/details/52105365 一,什么是I/O多路复用 所谓的I/O多路复用在英文中其实叫 I/O mult ...
- SQL语法:浅析select之七大子句
Mysql版本:8.0.26 可视化客户端:sql yog 目录 一.七大子句顺序 二.演示 2.1 from语句 2.2 on子句 2.3 where子句 2.4 group by子句 2.4.1 ...
- SQL 查询总是先执行SELECT语句吗?你们都错了!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 译者:无明 链接:infoq.cn/article/Oke8hgi ...
- Python标准库asyncio模块基本原理浅析
Python标准库asyncio模块基本原理浅析 本文环境python3.7.0 asyncio模块的实现思路 当前编程语言都开始在语言层面上,开始简化对异步程序的编程过程,其中Python中也开始了 ...
最新文章
- Cell Reports:去除宿主和胞外DNA以提高微生物基因组得率(痰液样本)
- 具体解释Hibernate中的事务
- 项目部署不到tomcat中的原因和解决方法
- 日本CG大神又整活了!3D建模软件拿来搞面部实时捕捉,网友:效果好得有点吓人...
- Android开发之2048安卓版
- python的subprocess模块执行shell命令
- ubuntu server修改语言
- CodeForces - 1422E Minlexes(dp+字符串)
- 德 梅齐里亚克的砝码问题matlab,德梅齐里亚克砝码问题之解
- SQL Server 负载均衡集群(转)
- 【海淘域名】GoDaddy账户被锁定后的解决方法
- 基于容器服务的持续集成与云端交付(四)- 多种发布方式
- php的类图怎么生成_PHP网站怎么划UML类图?
- Django的路由层
- 没有业务思维,数据分析只能是一堆废纸
- ❤️Mybatis开发中什么是多对一处理、一对多处理?
- C++实现的Miller-Rabin素性测试程序
- TIPS:java 类的全局变量与静态变量
- EasyRecovery14永久免费版密钥电脑硬盘恢复教程
- linux文件名排序规则,Linux 上readdir 遍历文件夹按文件名排序
热门文章
- kettle连接mysql教程_kettle 连接 mysql8
- php xml 空格,php闭合标签输出多余空行使xml页面显示错误的处理
- ElasticSearch filter查询
- 互联网晚报 | 3月25日 星期五 |​ ​​私募大佬但斌疑似空仓;蔚来和小米汽车拟采用比亚迪电池...
- 2021中国到店消费新趋势洞察报告
- 第48次《中国互联网络发展状况统计报告》
- 数据表格应该这样设计
- python爬虫小工具——editplus
- vector自动扩容如何实现_腾讯云ClickHouse如何实现自动化的数据均衡?
- 运维工程师项目案例_【IT专场】系统运维工程师等岗位在线邀你入职,base上海|深圳|昆山...