首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL语句中 where 和 on 区别

先说结论: 在使用left join左连接时,on and和on where条件区别如下: 1、on条件是在生成临时表时使用条件,它不管on中条件是否为真,都会返回左边表中记录。...2、where条件是在临时表生成好后,再对临时表进行过滤条件。...这时已经没有left join含义(必须返回左边表记录)了,条件不为真的就全部过滤掉,on后条件用来生成左右表关联临时表,where条件对临时表中记录进行过滤。...join过程可以这样理解:首先两个表做一个笛卡尔积,on后面的条件是对这个笛卡尔积做一个过滤形成一张临时表,如果没有where就直接返回结果,如果有where就对上一步临时表再进行过滤。...where过滤作用就出来了,右连接原理是一样。到这里就真相大白了:inner join中on和where没区别,右连接和左连接就不一样了。 本文转载自: SQL语句中where和 on区别?

3K20

sql语句中where与having区别

Where 是一个约束声明,使用Where约束来自数据库数据,Where是在结果返回之前起作用Where中不能使用聚合函数。...Having是一个过滤声明,是在查询返回结果集以后对查询结果进行过滤操作,在Having中可以使用聚合函数。...一来,我们要使用聚合语句 avg ;二来,我们要对聚合后结果进行筛选( average > 3000 ),因此使用 where 会被告知 sql 有误。...例2:要查询每个部门工资大于3000员工个数 sql语句应为: select deparment, count(*) as c from salary_info where salary >...3000 group by deparment 此处 where 不可用 having 进行替换,因为是直接对库中数据进行筛选,而非对结果集进行筛选。

1.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

SQL语句中where 1=1意义

我们在看别人项目的时候,很多时候看到这样SQL语句: select * from user where 1=1 其中这个where1=1是有特殊意义,包含以下两种情境:动态SQL拼接和查询表结构。...当我们SQL语句加上where 1=1时候,就不报错了,如下: String sql="select * from table_name where 1=1"; if( conditon 1) {...sql=sql+" and var2=value2"; } if(conditon 2) { sql=sql+" and var3=value3"; } SQL语句加上where 1=1,只是为了满足多条件查询页面中不确定各种因素而采用一种构造一条正确能运行动态...这种写法实际目的是为了获取逻辑值"True",其实诸如2=2, 1+2=3,'中'='中'等之类写法都可以返回逻辑值"True",只不过1=1运算开销更小,故被应用最普遍。...,有些画蛇添足,where 1=1实际意义不如where 11(或者where 1=0)来得有用,当我们只需要获取表字段(结构)信息,而不需要理会实际保存记录时,例2)写法将是非常可去取

3.6K51

SELECT 语句中 查询(Sub Query)

SELECT 语句中查询 查询(Sub Query)或者说内查询(Inner Query),也可以称作嵌套查询(Nested Query),是一种嵌套在其他 SQL 查询 WHERE句中查询...使用查询必须遵循以下几个规则: 查询必须括在圆括号中。 查询 SELECT 子句中只能有一个列,除非主查询中有多个列,用于与查询选中列相比较。...SELECT 列表中不能包含任何对 BLOB、ARRAY、CLOB 或者 NCLOB 类型值引用。 查询不能直接用在集合函数中。...INSERT 语句可以将查询返回数据插入到其他表中。查询中选取数据可以被任何字符、日期或者数值函数所修饰。...ID IN (SELECT ID FROM CUSTOMERS) ; UPDATE 语句中查询: 查询可以用在 UPDATE 语句中

2.8K20

Numpy模块中where函数

print('4') if 2 < 4 else print('2') a numpy.where 前面说了那么多关于三元表达式,就是为了引出numpy.where函数,其实猜也能猜出来,我们numpy.where...函数正是我们三元表达式x if condition else y矢量化版本。...但是如果使用Python中list列表的话会有几个问题: 它对于大数组处理速度不是很快(因为所有工作都是由纯python完成); 无法用于多维数组; 所以我们就有了numpy.where函数出现...,所以where函数参数可以是标量; 参数之间是有一定对应关系。...import numpy as np array = np.where(True,[1,2,3],[4,5,8])#[True]也可以 #这个地方传进去值是list,但是返回值还是数组 #where会自动把参数转换成

1.5K10

Studio 3T中新功能:支持SQL SELECT DISTINCT,WHERE句中JSON对象及更多

Studio 3T2019年第一个版本侧重于对SQL Query改进,这是您最常用功能之一,此外还有其他用户请求UX优化: 添加了SELECT DISTINCT支持 使用JSON对象WHERE...子句中扩展SQL语法 能够在更改字段类型时保留值 更好入门功能建立在功能和新交互之上 SQL查询|支持SQL SELECT DISTINCT 我们已将SQL SELECT DISTINCT添加到支持...SQL查询| WHERE句中JSON对象 除了SELECT DISTINCT之外,您现在还可以通过两种方式在SQL WHERE句中使用JSON对象: WHERE JSONor WHERE identifier...在此处查看支持JSON语法完整列表。...功能和新交互 我们还添加了功能和新增图库,以便为新用户和当前用户提供更好入职体验。在应用程序中检查它!

3.4K20

【基于 JS 函数式编程 - 4】函 | MayBe函 | Monad函

我们知道,函数式编程技术有 柯里化、偏函数等等。错误处理也是一种技术,本节中我们会使用函(Functor),用一种纯函数方式帮助我们处理错误。...概念 函 定义: 函是一个普通对象,它实现了map函数,在遍历每个对象值时候生成一个新对象。即,函是一个实现了 map 契约对象! 简单理解:函是一个持有值容器。...map函数从Container中取出值,将传入函数应用于其上,并将结果放回Container。...那么,我们就可以知道 Monad 函一大特点就是能够避免深层嵌套,只要提供下一运算所需要函数,就能将函数拆解成互相连接多个步骤,自动进行下去,并且每次都是只返回一个单层。...这个函有一个 flatMap 方法,即降维能力。

15320

Oracle 数据库拾遗(四)

对于含有查询 SQL 语句来说,SQL 对其执行以下 3 个步骤: 执行查询,获取指定字段返回结果 将查询结果代入外部查询中 根据外部查询条件,输出 SELECT 子句中指定列值记录...含有聚合函数单行查询 前面提到过聚合函数是不能使用在 WHERE句中,那么这势必会影响到某些功能实现。...例如要找出 student 表中所有学生中年龄最大学生所有基本信息,我们就可以使用含有聚合函数单行查询来实现。...事实上,此处返回结果仍然只有单行。 FROM 子句后查询 前面的实例中,查询都是出现在 WHERE 子句后,作为条件来过滤不需要记录行。事实上,查询也可以出现在 FROM 子句中。...SAGE > 20; 需要注意: 在 FROM 子句中查询代替表作为查询对象时,如果其后还包含 WHERE 子句,那么 WHERE句中组成条件一定要是查询能够返回列值,否则语句执行将出现错误

1.1K30

T-SQL进阶:超越基础 Level 2:编写查询

Transact-SQL语句中有许多不同地方,需要一个查询来返回单个列值,例如在选择列表中WHERE子句等。...WHERE句中子查询示例 有时你想根据SELECT语句结果来驱动WHERE子句条件。 当您在WHERE句中SELECT语句时,此SELECT语句实际上是一个查询。...[Product] WHERE Name = 'Long-Sleeve Logo Jersey, XL'); 清单3:WHERE句中查询 清单3中查询位于...子句右侧查询,并在我查询中使用COUNT函数来确定“2006-05-01”上订单数量。...在函数调用中使用查询示例 要演示在函数调用中使用查询,假设您需要显示OrderDate和每个Sales.SalesOrderHeader记录最大OrderDate之间天数。

5.9K10

数据库索引设计与优化

表和索引行都被存储在页中,页大小一般为4KB,缓冲池和I/O活动都是基于页 2.索引行在评估访问路径时候是一个非常有用概念,一个索引行等同于叶子页中一个索引条目,字段值从表中复制到索引上,并加上一个指向表中记录指针...,可以标记为第二颗星,这排除了排序操作 如果索引行包含查询语句中所有列,可以标记为第三颗星,避免了访问表操作,仅访问索引就可以了 3.ORDERBY和范围谓词同时存在不得不牺牲第一或第二颗星 五、前瞻性索引设计...1.基本问题法(BQ):是否有一个已存在或者计划中索引包含了WHERE子句所引用所有列(一个半宽索引)?...2.BQ目的只是确保我们至少可以通过索引过滤来最小化对表访问 3.快递上限估算法(QUBE),在新方案设计过程中使用 六、影响索引设计过程因素 七、被动式索引设计 八、为表连接设置索引 1.嵌套循环连接...半宽索引:一个包含WHERE句中所有列索引,使用半宽索引将使得访问路径仅在必要时才访问表 聚焦索引:在SQL Server中是指一个包含表行索引,在DB2中是指任何一个索引行顺序与表行顺序相同或计划相同索引

1.4K10

【数据库】03——初级开发需要掌握哪些SQL语句

字符串可以应用许多函数运算,比如连接字符串(||),提取串,去字符串后空格trim等等。不同数据库系统提供函数集是不同,具体可以查阅数据库系统手册。 使用like可以进行模糊匹配。...group by子句中属性,如果出现在select子句中,它只能作为聚集函数参数。...SQL在形成分组以后才应用having子句中谓词,因此在having子句中可以使用聚集函数。...8.5 from子句中查询 前面的查询都是在where句中使用,下面介绍在from子句中使用查询。...从SQL:2003开始SQL标准允许from子句中查询使用关键字lateral作为前缀,以便访问同一个from子句中在它前面的表或者查询属性。

3.5K31

查询与查询分类(二)

使用查询查询可以嵌套在 SELECT、FROM、WHERE 和 HAVING 子句中,以实现更复杂数据检索和分析。...在使用查询时,需要注意以下几点:查询必须始终放在括号中;查询可以是标量、列或表查询;查询可以使用运算符、聚合函数和其他 SQL 语句;查询结果必须与主查询数据类型兼容。...以下是一些常见查询用法示例:在 WHERE句中使用查询SELECT customer_name, credit_limitFROM customersWHERE customer_id IN...,以获取这些客户信用限制在 SELECT 子句中使用查询SELECT customer_name, (SELECT COUNT(*) FROM orders WHERE customer_id =...WHERE country = 'USA') 返回来自美国客户表一部分,然后将其与订单表进行连接,以获取来自美国客户订单信息。

1.4K10
领券